有没有办法创建一个ko.computed字段,通知发生在数组元素发生的变化?
我的第一个想法是使用observableArray,但它不起作用,因为
不过,我发布这段代码来说明我正在尝试做什么.
HTML:
<div data-bind="foreach:arr">
<input type="text" value="" data-bind="value: a" />
</div>
<div data-bind="foreach:arr">
<p>
Field "a" is changed: <span data-bind="text: aChanged()? 'true': 'false'"></span>
</p>
</div>
<p>
Some "a" field from the array is changed: <span data-bind="text: someAChanged()? 'true': 'false'"></span>
</p>
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
function AppViewModel() {
this.arr = ko.observableArray([new A(), new A()]);
this.someAChanged = ko.computed(function () {
var ch = false;
var arr = this.arr();
for (var i = 0; i < arr.length; i ++) {
if (arr[i].aChanged()) { …Run Code Online (Sandbox Code Playgroud) knockout.js ×1