如何在不清除本地存储的情况下删除与ember模型关联的所有记录?

时间:2013-10-08 20:31:41

标签: ember.js local-storage ember-data ember-model

我已经扩展了此stackoverflow answer中给出的程序,以便拥有一次删除所有记录的程序。但是,删除仅在批处理中发生,并且不会一次删除所有内容。

以下是我在此JSBin中使用的功能的片段。

deleteAllOrg: function(){
  this.get('store').findAll('org').then(function(record){
    record.forEach(function(rec) {
        console.log("Deleting ", rec.get('id'));
        rec.deleteRecord();
        rec.save();
    });
    record.save();
  });
}

知道如何修改程序,以便一次删除所有记录?

我也尝试过model.destroy()和model.invoke('deleteRecords'),但它们不起作用。

非常感谢任何帮助。谢谢你的帮助!

1 个答案:

答案 0 :(得分:16)

deleteRecord()内拨打forEach将打破循环。您可以通过将删除代码包装在Ember.run.once函数中来修复它:

  this.get('store').findAll('org').then(function(record){
     record.content.forEach(function(rec) {
        Ember.run.once(this, function() {
           rec.deleteRecord();
           rec.save();
        });
     }, this);
  });

请参阅this jsBin