-1

とにかく、コレクションでのみ、またはモデルでのみ sync メソッドを使用するだけで十分ですが、なぜ両方の場所で同期する必要があるのでしょうか?

4

2 に答える 2

3

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".

于 2012-08-03T11:04:28.667 に答える
2

syncバックボーンには、デフォルトでモデルとコレクションに-メソッドがありませんが、モデルとコレクションの両方に、-メソッドを使用してajax呼び出しを行うメソッド(fetchモデルとコレクションの両方、およびsaveモデルの場合)があります。ドキュメント注釈付きソースdestroyBackbone.sync

使用するメソッドは、個々のコレクションまたはモデルのメソッドBackbone.syncの存在をチェックするため、-functionを使用してカスタム同期が必要なモデルまたはコレクションを拡張するsyncことにより、または特定の部分を上書きすることで、同期のデフォルト機能をすべて上書きできます。 。Backbone.syncsync

モデルとコレクションの両方にサーバーと同期する機能がある理由については、柔軟性があります。コレクションのみが同期機能を備えている場合、個々のモデルを使用することはできません。モデルのみが同期機能を備えている場合、最初にサーバーからモデルの大規模なバッチをフェッチするにはどうすればよいでしょうか。モデルとコレクションの同期機能を使用することにマイナス面はありません。

あなたへの私の反対の質問:他のものだけで同期することはどのように十分でしょうか?

于 2012-08-03T11:01:51.227 に答える