首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免重新评估ng-options

避免重新评估ng-options
EN

Stack Overflow用户
提问于 2013-10-13 18:57:34
回答 1查看 184关注 0票数 1

我一直在使用ng-options为偶尔会发生变化的值构建一个选择器。在我的非玩具示例中,我在数组中有大约50个选项,我注意到每次进行更改时速度都会变慢。我发现每次我更改我的选择时,它都在重新评估ng-options。有没有办法避免这种情况?我这里有一个玩具示例:

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

本质上,这个函数:

代码语言:javascript
复制
scope.formatItem = function (item) {
    console.log('formatting item.');
    return item.someProp1 + '/' + item.someProp2;
};

被调用来格式化每一项以便在选择器中显示,但我希望它只在初始静态列表中的每一项上运行一次。

Chrome中的控制台在我做出选择之前总共显示了9个日志语句,之后每次更改都显示了3个日志语句。我最初的猜测是使用compile,但我希望得到一些指导。

EN

回答 1

Stack Overflow用户

发布于 2013-10-13 21:28:36

为什么不在一开始就运行它,并将值作为单独的属性进行缓存

代码语言:javascript
复制
for (var i=0;i< scope.someList.length ;i++){
   scope.someList[i].someProp3 = scope.formatItem(scope.someList[i]);
}

DEMO

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19344409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档