我已经在这个example我的问题中重现了,我创建了添加和删除发票中交易的操作,问题是在我的Ember数据中,删除的交易不会在记录中删除。 / p>
这是我正在做的事情不正确的代码
actions: {
add: function() {
var transactionRecord = this.store.createRecord('transaction', {
name: 'new transaction',
isChecked: false
});
return this.get("model.transactions").addObject(transactionRecord);
},
remove: function() {
var allSelectedItems = this.get("model.transactions").filterBy("isChecked", true);
return this.get('model.transactions').removeObjects(allSelectedItems).deleteRecord(transactionRecord);
},
}
<td><button {{action "add"}}>Add New Transaction</button>
<button {{action "remove"}}>Remove Transaction</button></td>
虽然我能够删除事务对象,但是当我调试时我仍然可以在记录数据中看到事务
要删除的交易是检查的交易
我附上显示问题的图片:
删除前
删除后
正如您所看到的,删除后,num transactions仍为3
删除记录时我做错了什么?
答案 0 :(得分:1)
您可能需要迭代数组并单独删除每条记录:
remove: function() {
var allSelectedItems = this.get("model.transactions").filterBy("isChecked", true);
this.get('model.transactions').removeObjects(allSelectedItems)
allSelectedItems.forEach(function(item) {
item.deleteRecord();
});
}
此外,操作永远不会返回任何内容,因此不需要return
。