型号删除记录灰色

时间:2015-01-14 21:36:16

标签: javascript ember.js transactions jsbin

我已经在这个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>

虽然我能够删除事务对象,但是当我调试时我仍然可以在记录数据中看到事务

要删除的交易是检查的交易

我附上显示问题的图片:

删除前

Before Delete

删除后

enter image description here

正如您所看到的,删除后,num transactions仍为3

删除记录时我做错了什么?

1 个答案:

答案 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