モデルのコレクションをサーバーと同期させる方法を見つけようとしています。現時点では、私のコードは次のようになっていますが、明らかにいくつかの問題があります...
var myCollection = Backbone.Collection.extend({
url: '/api/block',
...
sync: function() {
_.each(this.models, function(model) {
model.sync('create', model);
});
}
});
現時点では、コレクションで sync を呼び出すと、すべてのモデルが反復処理され、それぞれのモデルで sync が呼び出されます。まず驚いたのは、これが Backbone.Collection.sync メソッドのデフォルトの動作ではないということです。それとも、「コレクションの同期」が何をすべきかを誤解していますか?
第二に、私のmodel.sync('create', model);
セリフは少し奇妙です。モデル自体でメソッドを呼び出すときに、モデルを渡す必要があるのはなぜですか? また、手動で「作成」を呼び出していますが、これは明らかに間違っています。「同期」は、作成または更新する必要があるかどうかを認識すべきではありませんか?
また、「同期」は、コレクションから削除されたモデルで「削除」を呼び出すのに十分なほどインテリジェントであるべきではありませんか?
モデルの同期方法をカスタマイズすることを検討する必要があると思いますが、これらの同期方法をカスタマイズする必要がある珍しいことをしていることについて、まだ混乱しています。
同期についてかなり大きな点が欠けているように感じます。