Knockout.js:通过循环更改多个observable将无法正常工作

时间:2013-01-22 11:47:08

标签: javascript knockout.js

我想要做的很简单,我想从对象列表中更新一个可观察的属性。这就是我所拥有的:

// cars is an observablearray, and q is an observable    
for(i=0; i < self.cars().length, i++) {
    self.cars()[i].q(0);
}

代码只执行一次。如果q的当前值为0,那么它将进入下一个(即i = 1),但是一旦它改变了1个对象,它就会返回。有人对这种行为有解释吗?是否有“淘汰”方式来实现这一目标?

谢谢。

1 个答案:

答案 0 :(得分:2)

我倾向于使用arrayForEach方法:

ko.utils.arrayForEach(self.cars(), function (item)
    {
        item.q(0);
    });

这对你有用吗?