とにかく、コレクションでのみ、またはモデルでのみ sync メソッドを使用するだけで十分ですが、なぜ両方の場所で同期する必要があるのでしょうか?
2 に答える
Actually both sync()
methods are just proxies to a common Backbone.sync()
method:
Collection always delegate in the Model.sync()
for individual operations over its individual models like: create
, remove
and so on. But Collection uses its own sync()
in the fetch()
operation due it is very different to fetch
a Model or a Collection, for example: the URL follows another patter and the backend layer should respond different.
In the other hand I see the Backbone.sync()
as a private method and I try to not use it directly, if I'm doing this I don't feel well. I think the sync()
method is a handler point to allow you to overwrite completely the backend synchronization a method that you can overwrite to implement different persistance layers as for example using LocalStorage. But not for be called directly.
As @JMM has said in the comments, the Model.sync()
and Collection.sync()
is also a good point to be overwrote to make it "does something custom and then calls Backbone.sync()
to carry on as usual".
sync
バックボーンには、デフォルトでモデルとコレクションに-メソッドがありませんが、モデルとコレクションの両方に、-メソッドを使用してajax呼び出しを行うメソッド(fetch
モデルとコレクションの両方、およびsave
モデルの場合)があります。ドキュメント、注釈付きソースdestroy
Backbone.sync
使用するメソッドは、個々のコレクションまたはモデルのメソッドBackbone.sync
の存在をチェックするため、-functionを使用してカスタム同期が必要なモデルまたはコレクションを拡張するsync
ことにより、または特定の部分を上書きすることで、同期のデフォルト機能をすべて上書きできます。 。Backbone.sync
sync
モデルとコレクションの両方にサーバーと同期する機能がある理由については、柔軟性があります。コレクションのみが同期機能を備えている場合、個々のモデルを使用することはできません。モデルのみが同期機能を備えている場合、最初にサーバーからモデルの大規模なバッチをフェッチするにはどうすればよいでしょうか。モデルとコレクションの同期機能を使用することにマイナス面はありません。
あなたへの私の反対の質問:他のものだけで同期することはどのように十分でしょうか?