【问题标题】:Error while destroy Ember Data record销毁 Ember 数据记录时出错
【发布时间】:2017-02-07 01:34:25
【问题描述】:

我在删除 Ember 数据记录时遇到错误,我不知道原因,

Attempted to handle event `pushedData` on <card:32> while in state root.deleted.inFlight. 
Error

下面的代码是触发错误的地方,

    deleteBtnClicked() {
        const controller = this.controllerFor('browse/index');
        let selectedCards = controller.getSelectedCard();
        selectedCards = selectedCards.map((card) => {
            return parseInt(Ember.get(card, 'id'));
        });

        selectedCards.forEach((id) => {
            this.store.find('card', id)
                .then((card) => {
                    card.destroyRecord();
                });
        });
    }

原来记录已成功删除,但错误仍然存​​在。

【问题讨论】:

    标签: javascript ember.js ember-data


    【解决方案1】:

    find is private method 所以请不要使用它。相反,您可以使用 findAllfindRecord

    deleteBtnClicked() {
        const controller = this.controllerFor('browse/index');
        let selectedCards = controller.getSelectedCard();
        //if selectedCards itself is RecordArray you can easily iterate using forEach and destroyRecord. no need of findRecord.
        selectedCards = selectedCards.map((card) => {
            return parseInt(Ember.get(card, 'id'));
        });
        //I added reload: true this will ensure promise will be resolved only after adapters returns the data.
        selectedCards.forEach((id) => {
            this.store.findRecord('card', id, { reload: true })
                .then((card) => {
                    card.destroyRecord();
                });
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多