避免重新评估ng选项
Avoiding reevaluation of ng-options
我一直在使用ng-options为偶尔变化的值构建选择器。在我的非玩具示例中,数组中有大约 50 个左右的选项,并且每次进行更改时我都会注意到速度变慢。我发现每次我更改我的选择时,它都会重新评估 ng-options。有没有办法避免这种情况?我这里有一个玩具示例:
http://jsfiddle.net/BBra9/2/
本质上,此函数:
scope.formatItem = function (item) {
console.log('formatting item.');
return item.someProp1 + '/' + item.someProp2;
};
正在调用以格式化每个项目以在选择器中显示,但我只想让它在初始静态列表中的每个项目运行一次。
Chrome 中的控制台总共显示了我在做出选择之前所做的 9 个日志记录语句,之后每次更改都会显示 3 个后续语句。我最初的猜测是使用compile
但我希望得到一些指导。
为什么不在开始时运行它并将值作为单独的属性
for (var i=0;i< scope.someList.length ;i++){
scope.someList[i].someProp3 = scope.formatItem(scope.someList[i]);
}
演示
相关文章:
- ng映射方向备选方案
- AngularJS UI路由器不能像ng路由器那样工作
- 角度:在ng重复上切换图像
- 正在使用$location.path(.)路由ng视图
- AngularJS:ng之后,重复$scope值未按预期更新
- ng打开空字符串
- 我应该使用Ng提交还是点击表格
- ng init中的表达式无法使用ng repeat
- 角度ng级重新评估
- Angular's ng类未更新,而正在评估的值为
- 避免重新评估ng选项
- ng-禁用的角度JS来评估获得$http.get的函数
- 正在评估AngularJS ng-show指令中的表达式
- ng节目需要'双重评估'
- AngularJS在评估正则表达式ng模式时出现问题
- 强制ng-disabled和ng-show重新评估自定义函数
- 减少AngularJS中禁用的评估ng的事件触发器
- angularjs:为什么ng-click没有'似乎无法评估{{}}
- 我如何使我的离子按钮刷新所有离子视图.(在大多数情况下,更可取的是重新评估ng开关)
- 在将作用域变量传递给ng-show之前,如何评估它