0

我正在尝试从 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
}]
4

1 回答 1

2

collection.get方法通过 id 查找模型。如果要按位置查找模型,请collection.at改用。

另请注意,javascript 中的数组索引是0基于 - 的,因此可以通过以下方式找到第一个模型:

var model = collection.at(0); 

为方便起见,Backbone 集合还实现了一些下划线的数组和集合方法,包括first. 这意味着您还可以找到第一个模型:

var model = collection.first();
于 2013-01-29T16:27:35.930 回答