16

私はこれら2つの方法に関するドキュメントを読んで読みましたが、私の人生では、なぜ一方を他方に使用するのか理解できませんか?

誰かが私に、一方がアプリケーションであり、他方がそうでない基本的なコードの状況を教えてくれませんか。

4

3 に答える 3

33

reset指定したモデルの配列を使用してコレクションを設定します。

collection.reset( [ { name: "model1" }, { name: "model2" } ] );

fetchコレクションに指定したURLを使用して、サーバーからコレクションデータを取得します。

collection.fetch( { url: someUrl, success: function(collection) {
    // collection has values from someUrl
} } );

これが違いを説明するフィドルです。

于 2012-11-23T05:51:55.777 に答える
4

ここでは、ドキュメントを読んでいることを前提としています。そうでない場合、ここで少し混乱するでしょう。

fetchresetのドキュメントを見ると、その内容は、サーバー コードを指している可能性urlのある - のプロパティを指定し、 の配列を返す必要があり、 をその存在で埋める必要があるとします。返却、使用します。collectionjsonmodelscollectionmodelsfetch

たとえば、次の json がコレクション URL のサーバーから返されます。

[{
  id : 1, 
  name : "a"
 }, {
  id : 2, 
  name : "b"
 }, {
  id : 3, 
  name : "c"
 }]

フェッチが成功すると、コレクションに 3 つのモデルが作成されます。collection fetch ここのコードを探してみると、fetch が応答を取得し、指定されたオプションに基づいて内部的にresetorを呼び出すことがわかります。add

したがって、議論に戻ると、コレクションに格納したい がreset既にあると仮定し、それをパラメーターとして渡します。json of modelsあなたの生活の中で、コレクションを更新したいときにクライアント側にモデルが既にある場合は、 を使用する必要はありませfetchreset

したがって、リセットの助けを借りてコレクションに同じjsonを入力したい場合は、次のようにすることができます:

var _self = this;
$.getJSON("url", function(response) { 
  _self.reset(response); // assuming response returns the same json as above
});

まあ、これは従うべき慣行ではありません。このシナリオのfetch方が優れており、例として使用されているだけです。

リセットの別の例は、ドキュメントページにあります。

それが少しのアイデアを与えて、あなたの人生をより良くすることを願っています:)

于 2012-11-23T05:48:24.760 に答える
1

コレクションを新しい配列に置き換えるには、reset() を使用します。例えば:

@collection.reset(@full_collection.models)

ただし、 @full_collections モデルをロードします

@collection.reset()

空のコレクションを返します。そして fetch() 関数はモデルのデフォルト コレクションを返します

于 2012-11-22T20:50:19.120 に答える