我在 Backbone.js 模型中遇到了一个奇怪的问题,其中数组成员显示为空白。它看起来像这样:
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);
// ...
}
});
然后我通过添加一个小部件addWidget
。在尝试getWidget
我得到的结果时(在 Chrome 中)是这样的:
Object
widgets: Array[1]
0: child
length: 1
__proto__: Array[0]
__proto__: Object
[]
它显示小部件在记录时不为空,this.attributes
但在记录时显示为空this.attributes.widgets
。有谁知道这会导致什么?
编辑 我已经更改了模型以在初始化方法中实例化小部件数组以避免跨多个实例的引用,并且我开始使用骨干嵌套但没有运气。