我剛剛開始用燼,所以原諒我,如果這個問題似乎愚蠢。我有一個ArrayController,它擁有屬性名稱的人員列表。我使用下面的把手調用內容陣列中創建文本框爲每名:在Ember中如何在ArrayController內容被修改後更新視圖?
{{#each App.Controller}}
{{view Em.TextField placeholder="Name" valueBinding="name" }}
{{/each}}
這個工作正常。我首先用幾個名字初始化我的內容數組,併爲每個條目顯示一個文本字段。但是,當我使用pushObject將人員添加到內容數組時,不會添加新的文本字段!使用控制檯我可以看到人們被添加到內容中,視圖根本不會改變。更奇怪的是,如果我按以下方式添加的一切人按預期工作:
this.pushObject(newPerson);
var copy = this.get('content');
this.set('content',[]);
this.set('content',copy);
當我這樣,我又得到另一個文本字段爲新添加的人加人。該ember文檔說pushObject()是KVO兼容的,這並不意味着它應該更新依賴關係和視圖應該更新?我是否需要調用rerender()或其他函數來使pushObject()更新視圖,或者每次我想要更新視圖時,是否必須複製數組?謝謝!
我認爲pushObject應該更新,你能爲你的情況提供一個小提琴,以便我們可以看到發生了什麼? –
@未指定我找出問題所在。我在下面發佈我的解決方案我仍然不明白爲什麼它不能以原來的方式工作,但一旦文檔向我揭示了它的祕密,將會增加我的答案;) – ORL