У меня есть модель позвоночника с коллекцией.Вывод с консоли, когда я делаю console.log(this.model)
,
d
_changed: false
_changing: false
_escapedAttributes: Object
_previousAttributes: Object
attributes: Object
cid: "c1"
id: 63
itemlist: d
_byCid: Object
_byId: Object
_onModelEvent: function () { [native code] }
_removeReference: function () { [native code] }
length: 5
models: Array[5]
__proto__: o
url: "user/63"
__proto__: o
идеально!теперь я хочу получить коллекцию itemlist
, чтобы я мог сделать this.model.itemlist.each(render(item))
.
Но когда я пытаюсь вывести console.log(this.model.itemlist)
, я получаю пустую коллекцию
d
_byCid: Object
_byId: Object
_callbacks: Object
_onModelEvent: function () { [native code] }
_removeReference: function () { [native code] }
length: 0
models: Array[0]
parent: d
__proto__: o
Я не уверен, почему, когда я вывожу модель, я вижу вложенную коллекцию.почему я не могу попасть в коллекцию?или как мне попасть в коллекцию.
Я создаю вложенную коллекцию через
user.fetch({
success: function(response){
user.itemlist = new itemlistcollection(response.items)
}
});
----------------- обновление -----------------
, поскольку @Paul помогает мне обнаружить, что представления запускаются до завершения функции извлечения, поэтому у меня есть коллекция, когда я выводлю из fetch
, но я неДля того чтобы коллекция была доступна в представлении, где она необходима.
В моем маршрутизаторе происходит действие выборки, я создал функцию для инициализации объекта, если он еще не был инициализирован (не уверен, как другие к этому. Мой роутер выглядит так
User.Router = Backbone.Router.extend ({
routes: {
"user/new": "newUser",
"user/:id": "userView"
"": "index"
},
re_initialize: function(id){
user.fetch({
success: function(response){
user.itemlist = new itemlistcollection(response.items)
}
});
},
userView: function(){
console.log(user.itemlist);
new User.View(user);
}
});