【发布时间】:2015-12-14 18:39:57
【问题描述】:
是否有任何选项可以从 $scope.items 中过滤,其中 ID 存在于数组 $scope.myitems 中?
ng-repeat="item in items | filter:{item.id == myitems}
演示:http://codepen.io/anon/pen/rOeGYB
angular.module('myapp', [])
.controller("mycontroller", function($scope) {
$scope.items = [
{
"id": 1,
"name": "Melodie"
}, {
"id": 2,
"name": "Chastity"
}, {
"id": 3,
"name": "Jescie"
}, {
"id": 4,
"name": "Hamish"
}, {
"id": 5,
"name": "Germaine"
}, {
"id": 6,
"name": "Josephine"
}, {
"id": 7,
"name": "Gail"
}, {
"id": 8,
"name": "Thane"
}, {
"id": 9,
"name": "Adrienne"
}, {
"id": 10,
"name": "Geoffrey"
}, {
"id": 11,
"name": "Yeo"
}, {
"id": 12,
"name": "Merrill"
}, {
"id": 13,
"name": "Hoyt"
}, {
"id": 14,
"name": "Anjolie"
}, {
"id": 15,
"name": "Maxine"
}, {
"id": 16,
"name": "Vance"
}, {
"id": 17,
"name": "Ashely"
}, {
"id": 18,
"name": "Dominic"
}, {
"id": 19,
"name": "Cora"
}, {
"id": 20,
"name": "Bo"
}
];
$scope.myitems = ['0', '3', '6', '10', '19']
});
<link href="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.14/angular.min.js"></link>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myapp" ng-controller="mycontroller" class="container">
<h4>My items</h4>
<ul class="list-group">
<li class="list-group-item" ng-repeat="item in items | filter:{}">{{item.name}}</li>
</ul>
<h4>Total items</h4>
<ul class="list-group">
<li class="list-group-item" ng-repeat="item in items">{{item.name}}</li>
</ul>
</div>
【问题讨论】:
-
在另一个文件中创建自定义过滤器,然后调用它可能更容易。这样一来,您就可以使用一个小的过滤器声明来执行尽可能多的复杂逻辑。
标签: javascript angularjs angularjs-ng-repeat ng-repeat angularjs-filter