У меня есть маршрутизатор, обращающийся к своей коллекции. Мой цикл for не выполнял итерации по моделям, поэтому я попробовал зарегистрировать коллекцию, чтобы посмотреть, что она возвращает. Оказалось, что когда я регистрирую коллекцию напрямую, я вижу все модели, как и ожидалось. Но если я пытаюсь записать в журнал атрибут models коллекции, я получаю пустой массив! Это не имеет смысла. Эти строки следуют непосредственно друг за другом. Я попробовал изменить порядок и получил тот же результат.
console.log(this.collection);
=> Shots
_byCid: Object
_byId: Object
length: 15
models: Array[15]
__proto__: Shots
...
console.log(this.collection.models);
=> []
console.log(this.collection.length);
=> 0
Почему это происходит?
Вот код в том виде, в котором он находится в маршрутизаторе, чтобы лучше понять, где этот код срабатывает:
# Routers
class Draft.Routers.Shots extends Backbone.Router
routes:
'' : 'index'
'shots/:id' : 'show'
initialize: ->
@collection = new Draft.Collections.Shots()
@collection.fetch()
index: ->
console.log @collection
console.log @collection.models