ここでエンバー・ニュージャック。ArrayController を CollectionView にフックします。
// the ArrayController
App.Entities = Ember.ArrayController.create({
content: Ember.A([
{id: 1, name: "item 1"},
{id: 2, name: "item 2"},
...
{id: n, name: "item n"}
])
});
// the CollectionView
myView = Ember.CollectionView.create(
contentBinding: "App.Entities",
tagName: 'ul',
itemViewClass: Ember.View.extend({
template: Ember.Handlebars.compile('{{view.content.name}}')
})
).appendTo("mySelector");
これは、予想どおり、私のプロパティで素晴らしいものを作成しul
ます。同様に、ポップ、プッシュ、リバースなどのすべての配列レベルの操作は素晴らしく機能します。
App.Entities.reverseObjects(); // Works!
App.Entities.popObject(); // Works!
ただし、配列内のプロパティを更新できないようです。
App.Entities.objectAtContent(0).name = "new name" // I know this is wrong
余談ですが、後で配列操作を実行すると機能します。
App.Entities.reverseObjects(); // change is picked up!
質問: ArrayController 内のプロパティを更新する方法 (バインディングが更新されていることを確認しますか?)
ちなみに、myView.rerender() など、考えられることはすべて試しましたが、本来の動作に反しているため、何か間違ったことをしているだけだとわかっています。