Wenn ich ein Array von Objekten habe und das Angular-Modell an eine Eigenschaft eines der Elemente basierend auf einem Filter binden möchte, wie mache ich das? Ich kann besser mit einem konkreten Beispiel erläutert:Wie filtere ich ein Array mit AngularJS und verwende eine Eigenschaft des gefilterten Objekts als das ng-Modell-Attribut?
HTML:
<!DOCTYPE html>
<html ng-app>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body ng-controller="MyCtrl">
<input ng-model="results.year">
<input ng-model="results.subjects.title | filter:{grade:'C'}">
</body>
</html>
Controller:
function MyCtrl($scope) {
$scope.results = {
year:2013,
subjects:[
{title:'English',grade:'A'},
{title:'Maths',grade:'A'},
{title:'Science',grade:'B'},
{title:'Geography',grade:'C'}
]
};
}
JSBin: http://jsbin.com/adisax/1/edit
ich mit einem dem zweiten Eingang zu dem Thema filtern möge Klasse 'C', aber ich möchte das Modell nicht an die Klasse binden; Ich möchte es an den Titel des Subjekts binden, das Grad 'C' hat.
Ist dies möglich, und wenn ja, wie wird es gemacht?
ich sehe, wo Sie mit, dass gehen, aber ich habe nicht wirklich einen Repeater will. Die Eigenschaft, nach der ich tatsächlich filtern werde, ist eine Identitätsspalte, also ist sie einzigartig. Aber ich sehe, dass dies der richtige Weg wäre, das generische Problem zu lösen. –
Dies ist ein Tutorial für italienische Leute :) http://dev.stasbranger.com/post/77190983049/lista-di-filtri-in-angularjs –
das war sehr hilfreich, und für inverse (alles andere als C), dies würde funktionieren: 'filter: {grade: '!' + 'C'}' – pulkitsinghal