オブジェクトのリストをセットアップし、それらを content[] 配列リストに追加します。ここまでは順調。App.list の Ember DOM は正しいデータを表示します。ここで、App.list 内のオブジェクトを remove/add/replaceAt() せずにコンテンツ プロパティの変更を開始すると、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[] 配列の特定のオブジェクト内のプロパティ データを変更しています。removeAt()/Add/Delete オブジェクトは可能ですか?