控制器中的Ember.js deleteRecord()不工作
首先,我使用控制器中的Ember.js deleteRecord()不工作,ember.js,ember-data,Ember.js,Ember Data,首先,我使用ember.js 1.0.0,ember-data 1.0.0 b3和DS.RESTAdapter 到目前为止,创建工作正常,但如果我尝试删除一条记录(从入门开始就直接删除),我会收到以下错误消息: 未捕获类型错误:对象[Object Object]没有方法“deleteRecord” 这是我的模板: {{#each}} {{#link-to "role" this classBinding="isLoading:is-loading" tag="tr" }}
ember.js 1.0.0
,ember-data 1.0.0 b3
和DS.RESTAdapter
到目前为止,创建工作正常,但如果我尝试删除一条记录(从入门开始就直接删除),我会收到以下错误消息:
未捕获类型错误:对象[Object Object]没有方法“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}}
感谢您的帮助。如果不知道控制器的模型属性是如何分配的,很难说为什么该对象不会响应
deleteRecord
。但看起来您所做的是迭代控制器的内容(可能是一个集合),然后将各个模型传递给操作({{action“deleteRoleAction”this}
)。因此,您可能希望您的操作如下所示:
deleteRoleAction: function(role) {
role.deleteRecord();
}
请注意,
deleteRecord
本身仅在模型上设置删除标志;如果确实要将删除内容保存到服务器,则需要调用role.save()代码>也是。(1.0.0.b4中还有一个新的destroyRecord
方法,可以同时执行这两个功能。)谢谢。这解决了我的问题。但问题是,《入门》是以我当时的方式进行的,并且在那里工作。这是因为他们为每个待办事项设置了一个新的itemController:
deleteRoleAction: function(role) {
role.deleteRecord();
}