我有一個問題,如果我使用foreach綁定一個observableArray,我沒有看到對observableArray所做的更改反映在屏幕上。KnockoutJS observableArray綁定在使用foreach時沒有被通知更新
的結合看起來是這樣的:
<div data-bind="foreach: items">
<p>
<input data-bind="value: name" />
</p>
<p>Name: <span data-bind="text: name"></span></p>
<br />
</div>
的observableArray看起來是這樣的:
this.items = ko.observableArray([
{ name: 'Person 1', role: 'Sales' },
{ name: 'Person 2', role: 'Accounts' },
{ name: 'Person 3', role: 'Admin' }
]);
下面是一個的jsfiddle來說明這個問題: https://jsfiddle.net/ue3opdd2/2/
的HTML被拆分2個部分使用水平中斷。第1部分是使用可觀察的綁定。如果您修改文本框,則會看到下面的span元素中反映的更改。這是行得通的。
在第2節是完全相同的主體,但使用observableArray和foreach綁定。例如,如果更改「Person 1」文本框中的值,我希望看到此更改反映在下面的span元素中,但它不起作用(它保留爲「Name:Person 1」)。
我已經把一個調試輸出放在屏幕的底部,我也沒有看到那裏的observableArray更新的值。
我能看到的主要區別是observableArray是一個「複雜類型」。我的意思是每個元素都由一個包含名稱和角色的對象組成。這會有所作爲嗎?
任何人都可以幫助我得到這個工作嗎?
數組中的項目需要觀察爲好。 – Nkosi