Ich habe das Benutzerobjekt wie folgt definiert.Wie wendet man einen Filter auf mehrere Objekte mit AngularJS an?
$scope.users = [{id: 1, name: 'Adam', friends: [{name: 'John', age: 21, sex: 'M'}, {name: 'Brad', age: 32, sex: 'M'}]}]
Dann habe ich den folgenden Code:
<div ng-repeat="user in users>
<input type="text" ng-model="searchText">
<div ng-repeat="friend in user.friends | filter:searchText">
{{user.name}} {{friend.name}} {{friend.age}}
</div>
</div>
Nun, wenn ich in das Textfeld den Text eingeben: ‚search‘, möchte ich der Filter den Namen des Benutzers angezeigt werden und den Namen/Alter des Freundes. Kann mir jemand helfen, wie das geht?
Wenn ich richtig bin, dann denke ich, dass ich einen benutzerdefinierten Filter dafür erstellen muss oder gibt es eine andere Möglichkeit, die ich erreichen kann?
Vielen Dank Mark! Aber dieser filterFilter (Freunde, searchText) wird auf alle Objekte von Freunden, d. H. Name, Alter und Geschlecht oder nur Name und Alter filtern. Meine Anforderung ist, ich will nur "Name" und "Alter" durchsuchbar sein und Ergebnisse nur auf diesen beiden Objekten von Freunden gefiltert werden, da diese Felder angezeigt werden und nicht auf "Sex" –
Siehe aktualisierte Antwort. –
Ich weiß, wie alt das ist ... aber was passiert, wenn der 'searchText' meiner Eingabe innerhalb des Filters immer undefiniert ist? Scoping-Probleme natürlich, aber warum? – Clev3r