在我的html(.ng-template)中,我有一个数组,在其上应用了一个过滤器。我想将map函数应用于此滤镜函数的结果(在应用滤镜之前将它应用于整个数组太昂贵了)。 angularjs
的旧版本允许我通过
<ng-repeat = 'item in array.$filter(filterFunc).map(mapFunc).$orderBy("orderFunc()")'>
但是使用新语法(v 1.0.5)我无法做到这一点。
<ng-repeat = 'item in array|filter:filterFunc|orderBy:"orderFunc()"'>
我不明白如何将地图功能应用于此。有没有办法实现这个目标?
答案 0 :(得分:1)
模板很难测试,不在模板中编写任何业务逻辑,此外,这些函数将创建数组的新副本,并在每个{{1}每次应用地图函数阶段。
您应该在控制器中执行此操作,并在其中使用$digest
。
ngRepeat
function MyCtrl ($scope, $filter) {
var fullArray = [1,2,3];
var otherArray = $filter(filterFunc).map(mapFunc);
}
您也可以在控制器中订购数组。