控制器中的Ember.js deleteRecord()不工作



首先我使用ember.js 1.0.0ember-data 1.0.0 b3DS.RESTAdapter

到目前为止,创建工作还不错,但如果我试图删除一条记录(直接从入门中获得),我会收到以下错误消息:

Uncaught TypeError: Object [object Object] has no method 'deleteRecord'

这是我的模板:

{{#each}}
{{#link-to "role" this classBinding="isLoading:is-loading" tag="tr" }}
<td>{{ name }}</td>
<td>{{ role }}</td>
<td><button {{ action "deleteRoleAction" this}}>[x]</button></td>
{{/link-to}}
{{/each}}

这就是(在控制器中)的动作

this.get('model').deleteRecord()

感谢您的帮助。

如果不知道控制器的模型属性是如何分配的,很难说为什么该对象不会响应deleteRecord。但看起来您所做的是对控制器的内容(可能是一个集合)进行迭代,然后将各个模型传递给操作({{action "deleteRoleAction" this}})。所以你可能希望你的行动看起来像这样:

deleteRoleAction: function(role) {
role.deleteRecord();
}

注意,deleteRecord本身仅在模型上设置已删除标志;如果您真的想将该删除保存到服务器上,那么也需要调用role.save();。(1.0.0.b4中还有一种新的destroyRecord方法可以同时执行这两种操作。)

最新更新