我有一个20个对象的可观察数组。 每个对象都有大约30个字段,每个字段都是一个可观察到的值,该值绑定到SVG对象的属性。 所以基本上这些对象代表SVG中的不同形状。 所有属性都需要能够动态更改,并且所有更改都必须反映在SVG中。 对每个可变属性都有一个可观察对象似乎不是一个好主意,因为它总共有20 * 30 = 600个可观察对象。
是否有更有效的方法可以减少可观察量?它们是什么?
答案 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);
};