用backbone.js拉入一个集合

时间:2013-01-29 16:25:27

标签: backbone.js backbone.js-collections

我试图从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
}]

1 个答案:

答案 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();