2013-10-08 11 views
6

私はこの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')を試しましたが、動作しません。

ご協力いただきまして誠にありがとうございます。ご協力いただきありがとうございます!

答えて

14

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を参照してください。

+0

ありがとうございます!完璧に動作します! :) – user2431285

+0

私は助けてうれしい! – chopper

+7

最近、あなたは 'this.get( 'store')を呼び出すことができます。findAll( 'org')。invoke( 'destroyRecord')'それらをすべて削除するには –

関連する問題