2013-10-13 113 views
1

我一直在使用ng選項來爲非常零星地改變的值構建一個選擇器。在我的非玩具例子中,我有大約50個左右的選項,我發現每次我會做出改變都會放慢速度。我發現每次改變我的選擇時都會重新評估ng-options。有沒有辦法避免這種情況?我這裏有一個玩具例子:避免重新評估ng選項

http://jsfiddle.net/BBra9/2/

從本質上講,這個功能:

scope.formatItem = function (item) { 
    console.log('formatting item.'); 
    return item.someProp1 + '/' + item.someProp2; 
}; 

被調用時,每個項目格式在選擇顯示器,但我只希望有它運行一次每個項目在最初的靜態列表中。

Chrome中的控制檯在我做出選擇之前總共顯示了9條日誌語句,之後每次更改後都會顯示3條日誌語句。我最初的猜測是使用compile,但我希望得到一些指導。

+0

這可能會幫助你https://github.com/Pasvaz/bindonce – Chandermani

回答

0

爲什麼你不只是在開始運行它,並CACH值作爲一個單獨的屬性

for (var i=0;i< scope.someList.length ;i++){ 
    scope.someList[i].someProp3 = scope.formatItem(scope.someList[i]); 
} 

DEMO