我试图从url属性中提取一个集合并遇到一些问题。似乎fetch()成功返回,但是我无法使用get()访问我的集合中的模型。我正在使用bbb和requireJS来开发我的模块
var rooms = new Rooms.Collection(); // calls the rooms module
rooms.fetch({success: function(){
console.log(rooms.get(1)); // should output the first model
});
以下是房间模块中的收藏代码:
Rooms.Collection = Backbone.Collection.extend({
model: Rooms.Model,
url: 'http://localhost:8888/projects/meeting-room/app/data/rooms.json'
});
如果我输出房间,一切都很好。但是当我尝试一个特定的模型时,就是当我收到错误时。
[{
"id": 12345,
"name": "Ford",
"occupied": false
},
{
"id": 23458,
"name": "Chevy",
"occupied": false
},
{
"id": 83565,
"name": "Honda",
"occupied": false
}]
答案 0 :(得分:2)
collection.get
方法按ID查找模型。如果您想按位置查找模型,请改用collection.at
。
另请注意,javascript中的数组索引是基于0
的,因此可以找到第一个模型:
var model = collection.at(0);
为方便起见,Backbone集合还实现了一些underscore's array and collection methods,包括first
。这意味着您还可以找到第一个模型:
var model = collection.first();