0
我有一個ArrayController
與data:[]
屬性和模板與每個循環。Ember更新數組中的對象
當我
this.data.push({object})
數據陣列被更新,但視圖不是。
當我
this.data.pushObject({object})
數據陣列被更新,並且該視圖也更新(萬歲)。
當我
this.data[0] = {new object}
數據陣列被更新,但視圖不是。
這種情況下pushObject的等價物是什麼?
我找不到「updateObject」方法。有setObjects方法,但它奇怪地失敗。有些對象會更新,有些則不會。
的對象是這樣的:
{
item: "item",
array: [1, 2, 3, 4]
}
該項總是更新,並且該陣列並非總是如此。我將每個循環嵌套在模板中;這可能是一個問題嗎?
模板是這樣的:
{{#each data}}
{{item}}
{{foo}}
{{#each array}}
{{this}}
{{/each}}
{{/each}}
的方式我編輯就像(控制器):
var itemToEdit = self.get('data')[0];
itemToEdit['array'] = [2, 3, 4, 5];
全球來看,問題在於視圖不重新渲染。當我轉到另一條路線然後返回到當前路線時,所有更新都會正確呈現。
**進展情況: 當我做
self.get('data').setEach('foo', Math.random());
foo的屬性正確設置和更新的觀點......凡在地球上是一個數組元素的屬性「設置」的方法?
這不是我想要做的。 insertAt將在我的數組中插入一個對象;我已經有了我需要的所有項目,現在我想更新它們。替換方法看起來很有趣,但它不起作用,原因我還不明白 – fabien
對不起,我以爲你想要一個'this.data [0]'版本來觀察變化。你能否更新你的問題來顯示你如何將數據發送到模板,模板本身以及如何更改數據? –
我已經做了一些編輯 – fabien