Backbone.Collection.get()がよくわからない
単に私がよくわかってないだけな可能性もありますが。
参考:Backbone.js
これを見る限り、
getcollection.get(id)
Get a model from a collection, specified by an id, a cid, or by passing in a model.
で、
var book = library.get(110);
と。
2014/06/05: 追記しました。
だがしかし
// ... var id = 1; this.collection.get(id); // NG this.collection.get('c'+id); // OK // ...
ん・・?
これはそういう使い方をするものなのかしら?
そもそも実装が
// Get a model from the set by id. get: function(obj) { if (obj == null) return void 0; return this._byId[obj.id] || this._byId[obj.cid] || this._byId[obj]; },
でもこの this._byId ってオブジェクトの中身は、
{ c1: child, c2: child, c3: child, c4: child, c5: child, // .. }
ってな具合にぜんぶ c ってプレフィックスがついてて!
これは取れない気がするんやけど、なんか見落としてんのかなー・・。
そして引数にid/cidを持った何かのインスタンスを渡すシーンも想像できないんやけども。
ちなみに、Backboneはv1.1.0です。
追記
せっかくコメントいただいたので、追記します!
モデルにある**idAttribute**ってのを設定すると、それがモデルをユニークに指定するキーになります。
なので、Collection.getで指定されるキーは、この**idAttribute**で指定したやつになる・・と。
コメントに詳しい例を頂いたので、それ見るとなるほどなーってなります。
ありがたやありがたや。