更新可观察数组中对象的多个字段的有效策略?

时间:2014-03-06 15:37:54

标签: knockout.js

我有一个20个对象的可观察数组。 每个对象都有大约30个字段,每个字段都是一个可观察到的值,该值绑定到SVG对象的属性。 所以基本上这些对象代表SVG中的不同形状。 所有属性都需要能够动态更改,并且所有更改都必须反映在SVG中。 对每个可变属性都有一个可观察对象似乎不是一个好主意,因为它总共有20 * 30 = 600个可观察对象。

是否有更有效的方法可以减少可观察量?它们是什么?

1 个答案:

答案 0 :(得分:-1)

不要使属性可观察。更新observable数组中对象的非可观察属性,然后在可观察数组上调用valueHasMutated(),这应该强制将属性重新绑定到视图。

Refresh observableArray when items are not observables的另一种方法是进行脏刷新:

self.refresh = function(){
    var data = self.array().slice(0);
    self.array([]);
    self.array(data);
};