Backbone.js Pusty atrybut tablicy
Mam problem z modelem Backbone.js, w którym element tablicy jest wyświetlany jako pusty. Wygląda to mniej więcej tak:
var Session = Backbone.Model.extend({
defaults: {
// ...
widgets: []
},
addWidget: function (widget) {
var widgets = this.get("widgets");
widgets.push(widget);
this.trigger("change:widgets", this, widgets);
},
// ...
// I have a method on the model to grabbing a member of the array
getWidget: function (id) {
console.log(this.attributes);
console.log(this.attributes.widgets);
// ...
}
});
Następnie dodaję widżet przezaddWidget
. Podczas próbygetWidget
wynik jaki otrzymałem (w Chrome) to:
Object
widgets: Array[1]
0: child
length: 1
__proto__: Array[0]
__proto__: Object
[]
Pokazuje, że widżety nie są puste podczas logowaniathis.attributes
ale podczas logowania jest wyświetlany jako pustythis.attributes.widgets
. Czy ktoś wie, co by to spowodowało?
EDYTOWAĆ Zmieniłem model, aby utworzyć instancję tablicy widżetów w metodzie inicjalizacji, aby uniknąć odniesień w wielu instancjach i zacząłem używaćzagnieżdżony szkielet bez szczęścia.