6

我已经扩展了这个stackoverflow 答案中给出的程序,使其具有一个可以一次删除所有记录的程序。但是,删除仅分批进行,不会一次全部删除。

这是我在这个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') 但它们不起作用。

任何帮助是极大的赞赏。谢谢你的帮助!

4

1 回答 1

16

调用 insidedeleteRecord()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);
  });

看到这个 jsBin

于 2013-10-08T23:07:02.403 回答