我正在寻找一种从完整的ng-repeat
数组而不是过滤的数组中获取对象索引的本地方法。
让我们考虑以下数组:
{'1','2','3','4'} ,各自的指数分别为0,1,2和3.
我们还考虑一个自定义过滤器,它返回以下数组:
{'1','3'} ,各自的指数为0,1。
现在过滤数组中的索引'3'是1.但是,我要找的是完整数组中的索引2。
那么,如何从完整数组而不是过滤数组中获取对象的索引?我想避免在每个应用的过滤器上查找完整数组中的对象。
注意:对象不会也不会有ID。
答案 0 :(得分:1)
如何使用初始步骤来包含索引:
angular.module('testApp', [])
.controller('test', ['$scope', function ($scope) {
$scope.customFilter = function (data) {
return data.val.no != '2' && data.val.no != '4';
};
$scope.withIndices = function (ary) {
return ary.map(function (el, i) {
return { i: i, val: el };
});
};
}]);
<ul ng-controller="test">
<li ng-repeat="x in withIndices(names) | filter:customFilter">
Item: {{ x.val.no }} index: {{x.i}} </li>
</ul>
答案 1 :(得分:0)
var app = angular.module('myapp',[]);
app.controller('MainCtrl',函数($ scope){
$ scope.full = ['10','2','30','4'];
$ scope.filter = [ '10', '30']
});
模板:
&lt; div ng-controller =“MainCtrl”&gt;
&lt; div ng-repeat =“i in filter”&gt;
{{full.indexOf(ⅰ)}}
&LT; / DIV&GT;
&LT; / DIV&GT;