2

助けて。コレクションから ID でモデルを取得するにはどうすればよいですか?

var Sidebar = Backbone.Model.extend({});
var sidebar = new Sidebar;
var Library = Backbone.Collection.extend({})
lib=new Library();

lib.add(sidebar,{at: 234});

console.log(lib.get(234))//undefined ..Why??
4

2 に答える 2

4

idあなたは と を混ぜているようですがindex、これは交換できません。

で取得するidには、次のように設定しますModel

var sidebar = new Sidebar({ id: 234 });

// ...

console.log(lib.get(234));

indexコレクション内の配置は次のとおりです。

lib.add(sidebar, { at: 0 });

console.log(lib.at(0));     // sidebar
console.log(lib.models);    // Array: [ sidebar ]
console.log(lib.models[0]); // sidebar
于 2013-08-02T18:02:46.677 に答える
0

これを試して

var Sidebar = Backbone.Model.extend({
     // Need to set this. Otherwise the model
     // does not know what propert is it's id
     idAttribute : 'at'
});
var sidebar = new Sidebar();
var Library = Backbone.Collection.extend({})
var lib=new Library();

// Set the Model
sidebar.set({at:234});

// Add it to the collection
lib.add(sidebar);

console.log(lib.get(234))

フィドルをチェック

コレクションを追加する方法will be spliced at that indexと、そのインデックスに挿入されたモデル。それはあなたが望んでいるものではないと思います。したがって、最初にモデルに属性を設定してから、コレクションに追加する必要があります。

于 2013-08-02T18:01:19.480 に答える