2011-11-28 84 views
1

我得到了属性x的模型,我拿着一个模型的数组控制器。 我需要计算与我的数组中的每个x有关的东西,因此每个项目中的数组项或x属性的每个更改都应该触发计算。sproutcore - 观察数组项目的属性

如何使此计算属性?

回答

1

如果您需要在数组中的任何项目上的属性发生更改时对数组中的对象执行重新计算,则有几个选项。

1)使用RangeObserver。请注意,如果您这样做,您将更新观察者观察到的索引。查看源代码,包括测试,看看如何使用它。

2)自己滚动,即手动添加观察者到数组中的每个项目。同样的警告适用于这种方法。

3)计算属性很好,但这种情况非常复杂。您可能想从UI中触发事件(如果可能,可能对您的设置没有意义),只需手动进行重新计算即可。

+0

10x,我已经做的是选项3,但想尝试第一个答案。看起来有趣 –

1

您是否尝试过指定您的财产?

newProperty: function() { 
    // body goes here 
}.property('[]').cacheable() 

'[]'规范观察数组的内容。

+0

10x我会试一试 –