2017-02-06 5 views
2

私が持っているものは、レコードIDのリストです。たとえば、[1, 20, 20]です。Ember Dataを使用して複数のレコードを削除(一括削除)する正しい方法は何ですか?

各項目をクエリして削除すると効率が悪いようです。

store.findRecord('post', 1).then(function(post) { 
    post.deleteRecord(); 
    post.save(); // => DELETE to /posts/1 
}); 

複数のレコードを同時に削除したいと思います。 Emberデータを使用する正しい方法は何ですか?

+4

私は唯一の方法は、一括削除のためのバックエンドサービスを作成し、そのバックエンドサービスを呼び出すためのアダプタでメソッドを作成することだと思う –

+0

(簡単なことですが効率の悪い)ソリューションは、ストアのモデルのすべてのレコードをアンロードすることです。 [Ember:1つの要求でモデルを削除する](http://stackoverflow.com/questions/25113960/ember-remove-models-in-one-request)の可能な複製 –

答えて

2

主な問題は、明確に定義された(または従来の)RESTセマンティクスによる一括削除方法がないことです。通常のDELETE HTTPメソッドは、単一のリソースを識別するURLを対象としています。コメントでEbrahimが言及しているように、大量の削除を行うバックエンドサービスはおそらくより良いアプローチです。

バルクリクエストが正常に終了した後、次の問題は削除されたアイテムをEmberデータストアから削除することです。 store.unloadAll(modelname)

関連する問題