我设置了一个对象列表,将它们添加到 content[] 数组列表中。到目前为止一切顺利。App.list 中的 Ember DOM 显示正确的数据。现在,当我开始更改内容属性而不删除/添加/replaceAt() App.list 中的任何对象时,Ember 似乎没有选择它。
查看:{{#App.list.content 中的每个项目}} {{item.title}} {{/each}}
代码:function myApp() { App = Ember.Application.create({});
App.Item = Ember.Object.extend({
title: null,
parent: null
});
App.MyList = Ember.Object.extend({
title: null,
content: [],
changed: function() {
console.log('here');
}.observes('content')
});
App.list = App.MyList.create({
title: "foobar",
content: [
App.Item.create({
title: "item1"
}),
App.Item.create({
title: "item2"
})
]
});
console.log(App.list.content);
// Add 3rd object to list
App.list.get('content').pushObject(
App.Item.create({
title: "item3"
})
);
}
..后来在一些随机的 Ember ArrayController 中我这样做: for (var i = 0; i < 2; i++) { App.list.content[i].title = "I CHANGED YOU"; }
查看我的 App.list 内容是正确的,但视图不正确。我错过了什么吗?如果我不得不猜测 ArrayHasChanged() 似乎被操纵以改变数组大小或改变我没有做的对象,我正在更改 content[] 数组的特定对象内的属性数据。有可能还是我必须删除At()/添加/删除对象?