Model view controller 更改content[]对象属性而不删除或添加

Model view controller 更改content[]对象属性而不删除或添加,model-view-controller,ember.js,Model View Controller,Ember.js,我设置了一个对象列表,将它们添加到content[]数组列表中。到目前为止还不错。App.list中的Ember DOM显示正确的数据。现在,当我在App.list中不删除/add/replaceAt()任何对象的情况下开始更改内容属性时,Ember似乎没有注意到这一点 视图: {{{#App.list.content中的每个项目} {{item.title} {{/每个}} 代码: 函数myApp(){ App=Ember.Application.create({}) …然后在某个随机Embe

我设置了一个对象列表,将它们添加到content[]数组列表中。到目前为止还不错。App.list中的Ember DOM显示正确的数据。现在,当我在App.list中不删除/add/replaceAt()任何对象的情况下开始更改内容属性时,Ember似乎没有注意到这一点

视图: {{{#App.list.content中的每个项目} {{item.title} {{/每个}}

代码: 函数myApp(){ App=Ember.Application.create({})

…然后在某个随机Ember ArrayController中,我执行以下操作: 对于(变量i=0;i<2;i++){ App.list.content[i].title=“我改变了你”; }


查看我的App.list内容是正确的,但视图不是。我是否遗漏了什么?如果我必须猜测ArrayHasChanged()似乎是针对数组大小更改或对象更改的,而我没有这样做,我正在更改content[]数组的特定对象内的属性数据。是否可能,或者我必须删除()/添加/删除对象?

您需要使用get和set,以便观察者/绑定随更改而触发

// Bad
App.list.content[i].title = "blah";

// Good
App.get('list').objectAt(i).set('title', 'blah');
如果这仍然不适用于您,那么可能还缺少其他内容。如果您可以发布一个JSFIDLE,这将非常有帮助

// Bad
App.list.content[i].title = "blah";

// Good
App.get('list').objectAt(i).set('title', 'blah');