Вытащить коллекцию с помощью backbone.js
Я пытаюсь получить коллекцию из атрибута url, и у меня возникли некоторые проблемы. Кажется, fetch() возвращается успешно, но тогда я не могу получить доступ к моделям в моей коллекции с помощью get(). Я использую BBB и требуют JS для разработки своих модулей
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 ответ
collection.get
Метод ищет модель по идентификатору. Если вы хотите найти модель по позиции, используйте collection.at
вместо.
Также обратите внимание, что индексы массива в JavaScript 0
на основе, поэтому первая модель может быть найдена с:
var model = collection.at(0);
Для удобства коллекции Backbone также реализуют некоторые методы массива и коллекции подчеркивания, включая first
, Это означает, что вы также можете найти первую модель с:
var model = collection.first();