0

この例で私の問題を再現しました。請求書でトランザクションを追加および削除するアクションを作成しました。問題は、私の Ember データでは、削除されたトランザクションがレコードで削除されないことです。

これは私が何か正しくないことをしているコードです

  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>

トランザクション オブジェクトを削除することはできますが、デバッグすると、レコード データにトランザクションが表示されます。

削除する取引はチェックした取引です

問題を示す画像を添付します。

削除前

削除前

削除後

ここに画像の説明を入力

ご覧のとおり、削除後もトランザクション数は 3 のままです。

レコードを削除する際に何が間違っていますか?

4

1 に答える 1

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.

于 2015-01-14T22:13:45.340 に答える