2011-12-13 17 views
38

私のアプリケーションでは、私がデータで行うことはすべて、データがデータベースに格納されるときの主キーに基づいています。私はこのキーに基づいてコレクションからモデルを取得したいと思います。Backbone.jsコレクションからそのIDでモデルを取得するにはどうすればよいですか?

Collection.at()を使用するには配列インデックスが必要です。Collection.getByCid()には、バックボーンがランダムに生成するクライアントIDが必要です。

与えられたid値を持つコレクションから必要なモデルを取得する最良の方法は何ですか?私は、各項目を繰り返し処理することができる最悪の状況を把握します.get( 'id')、そしてその項目を返します。

+7

お探しのものはありませんか? http://documentcloud.github.com/backbone/#Collection-get – nikoshr

+0

ありがとう!私はそれが属性key/value storeの一部であると仮定していたので、.get()をスキップしました...あなたが質問に答えると、あなたに答えを与えることができます。 –

答えて

60

それはいくつかの助けになることがあり、getメソッドを見てみましょう:)

http://backbonejs.org/#Collection-get

collection.get(ID)
を取得するコレクションからモデルを取得しますid、cidで指定したり、モデルで渡したりすることで指定します。

+3

クリックを保存します。すべてのドキュメントがあります:id、cidで指定されたコレクションからモデルを取得するか、モデルを渡してモデルを取得します。 var book = library.get(110); – DOK

7

あなたのデータは、キーまたはat()getByCid()またはget()とうまく噛み合わないセットの異なる種類を使用する必要があるなら、where()もあります。このようなものが動作する可能性があります:

window.lib = new Library; 
window.lib.fetch([ 
    success: function(model, response) { 
     console.log(window.lib.where({'BookID':488, 'Rev':2, 'Status':'Active'}); 
    } 
}); 
関連する問題