Gibt es eine Option zum Filtern von $scope.items
, in der ID im Array $scope.myitems
vorhanden sind?AngularJs Wie kann ngRepeat mit anderen Array-Elementen gefiltert werden?
ng-repeat="item in items | filter:{item.id == myitems}
Demo: 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>
möglich Duplikat [? Ist es möglich, Angularjs durch Eindämmen in einem anderen Array zum Filtern] (http://stackoverflow.com/questions/15454900/is-it-possible-to-filter-angular-js-by-containment-in-another-array) – Claies
Es ist möglicherweise einfacher, einen benutzerdefinierten Filter in einer anderen Datei zu erstellen und dann aufzurufen. Auf diese Weise können Sie mit einer kleinen Filterdeklaration so viel komplexe Logik wie Sie wollen. – Vontei