2011-11-28 82 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我會試一試 –