好的,我有一个ng-repeat:
<div id="scrolltwo" class="animate-repeat panel" ng-repeat="items in arrayfull |filter:filtertype ">
在filtertype我有:
[[0] => "Typeone", [1] => "Typetwo" ]
如何让过滤器迭代整个数组并匹配与值匹配的结果?
使用自定义过滤器进行更新:
<div id="scrolltwo" class="animate-repeat panel" ng-repeat="items in arrayfull | array | filter:matchaccnttypes(accnttypes)">
有效的数组滤镜:
.filter('array', function() {
return function(items) {
console.log(items);
var filtered = [];
angular.forEach(items, function(item) {
filtered.push(item);
});
return filtered;
};
})
没有的matchaccountypes!:
$scope.matchaccnttypes = function matchaccnttypes(query) {
return function(items) {
return items.Organtype.match(query);
angular.forEach($scope.accnttypes, function(value, key){
console.log(key + ': ' + value);
});
}
};
它只返回传递给$ scope.accntypes数组的最后一个值,该数组是上面的示例数组..
答案 0 :(得分:1)
借助于underscoreJS的自定义过滤器。这是 Fiddle 。
app.filter('arrayFilter', function() {
return function(input, filterType) {
return _.intersection(input,filterType);
};
});
没有UnderscoreJS
app.filter('arrayFilter', function() {
return function(input, filterType) {
var filterdArray =[];
angular.forEach(input, function(inputValue, key){
angular.forEach(filterType, function(filterTypeValue, key){
if(inputValue==filterTypeValue){
filterdArray.push(inputValue);
}
});
});
return filterdArray;
};
});
和ng-repeat
应按以下方式使用。
ng-repeat="array in arrayfull | arrayFilter : filterType"