0
有一個數組(項目數組)一組對象的具有財產
item_id:
[{item_id:1,...},{item_id:2,...}...]
有一組
item_ids:
[2, 8, 10]
如何使用angularjs的$過濾器,以項目組,其中item_id
匹配那些item_ids
陣列獲取的對象數組另一個數組。
有一個數組(項目數組)一組對象的具有財產
item_id:
[{item_id:1,...},{item_id:2,...}...]
有一組
item_ids:
[2, 8, 10]
如何使用angularjs的$過濾器,以項目組,其中item_id
匹配那些item_ids
陣列獲取的對象數組另一個數組。
您可以使用自定義過濾器來執行此類過濾。你可以使用$filter
服務,如果你想在代碼而不是模板中做到這一點。
請參見下面的代碼。
var app = angular.module('app', []);
app.controller('ctrl', function($scope, $filter) {
$scope.items = [{
item_id: 1
}, {
item_id: 2
}, {
item_id: 3
}, {
item_id: 4
}];
$scope.findList = [2, 4];
$scope.findList2 = [3];
// Using $filter service.
$scope.usingservice = $filter('findobj')($scope.items, [1, 3])
});
app.filter('findobj', function() {
return function(list, obj) {
return list.filter(function(l) {
if (obj.indexOf(l.item_id) >= 0) {
return true;
}
});
};
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="ctrl">
<div ng-repeat="item in items | findobj: findList">
{{item}}
</div>
<hr/>
<div ng-repeat="item in items | findobj: findList2">
{{item}}
</div>
<hr/>{{usingservice}}
</div>
</div>
通緝使用$過濾器來做到這一點的代碼,如在你的榜樣。不知道數組可以用來代替過濾條件。另一部分(使用ng-repeat)也非常有用。 – mssuley