所以,如果我有一个数组:
$scope.letters =
[{"id":"a"},
{"id":"b"},
{"id":"c"}];
还有另一个数组
$scope.filterBy = ["b","c","d"];
我希望有一些ng-repeat可以仅通过出现在$ filterBy中的项来过滤$ scope.letters。
我希望能够做到以下几点:
<span ng-repeat="{{letter in letters|filter: letter.id in filterBy }} > {{letter.id}} </span>
并打印b,c
我知道这是一个非常愚蠢的示例,但是有没有一种方法可以根据另一个数组对象的内容来过滤angular.js表达式?
最佳答案
您应该尝试这样的事情:
JS:
angular.module('Test', []);
function Ctrl($scope) {
$scope.letters = [
{id: 'a'},
{id: 'b'},
{id: 'c'}
];
$scope.filterBy = ['b', 'c', 'd'];
$scope.filteredLetters = function () {
return $scope.letters.filter(function (letter) {
return $scope.filterBy.indexOf(letter.id) !== -1;
});
};
}
Ctrl.$inject = ['$scope'];
HTML:
<div ng-repeat='letter in filteredLetters(letters)'>{{letter.id}}</div>
您可以尝试live example。
关于arrays - 是否可以通过包含在另一个数组中来过滤angular.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15454900/