Javascript 避免重新评估ng期权
我一直在使用ng选项为偶尔会发生变化的值构建选择器。在我的非玩具示例中,阵列中大约有50个选项,每次进行更改时,我都会注意到速度减慢。我发现,每当我改变选择时,它都在重新评估选项。有没有办法避免这种情况?我这里有一个玩具的例子: 基本上,该功能:Javascript 避免重新评估ng期权,javascript,angularjs,Javascript,Angularjs,我一直在使用ng选项为偶尔会发生变化的值构建选择器。在我的非玩具示例中,阵列中大约有50个选项,每次进行更改时,我都会注意到速度减慢。我发现,每当我改变选择时,它都在重新评估选项。有没有办法避免这种情况?我这里有一个玩具的例子: 基本上,该功能: scope.formatItem = function (item) { console.log('formatting item.'); return item.someProp1 + '/' + item.someProp2; };
scope.formatItem = function (item) {
console.log('formatting item.');
return item.someProp1 + '/' + item.someProp2;
};
正在调用以格式化要在选择器中显示的每个项目,但我只希望在初始静态列表中的每个项目上运行一次
Chrome中的控制台显示在我做出选择之前总共9条日志记录语句,之后每次更改3条日志记录语句。我最初的猜测是使用compile,但我希望得到一些指导。为什么不在开始时运行它,并将值作为单独的属性进行cach
for (var i=0;i< scope.someList.length ;i++){
scope.someList[i].someProp3 = scope.formatItem(scope.someList[i]);
}
这可能对你有帮助