我一直在使用ng-options来构建一个非常零星地改变的值的选择器。在我的非玩具示例中,我在阵列中有大约50个左右的选项,每次我做出改变时都注意到减速。我发现每次改变我的选择时都会重新评估ng-options。有办法避免这种情况吗?我这里有一个玩具示例:
基本上,这个功能:
scope.formatItem = function (item) {
console.log('formatting item.');
return item.someProp1 + '/' + item.someProp2;
};
正在调用来格式化每个项目以便在选择器中显示,但我只想让它在初始静态列表中的每个项目运行一次。
Chrome中的控制台在我进行选择之前总共显示了9条日志记录,之后每次更改后显示3条日志记录。我最初的猜测是使用compile
,但我希望得到一些指导。
答案 0 :(得分:0)
为什么不在开头运行它并将值作为单独的属性捕获
for (var i=0;i< scope.someList.length ;i++){
scope.someList[i].someProp3 = scope.formatItem(scope.someList[i]);
}