Wie wenden Sie einen filter auf mehrere Objekte mithilfe von AngularJS?
Habe ich das user-Objekt wie folgt definiert.
$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 geben, wenn ich in die textbox den text: 'searchText', ich will den filter, um den Namen des Benutzers und den Namen/Alter des Freundes. Kann mir jemand helfen, wie dies zu tun?
Wenn ich richtig bin, dann denke ich, dass ich brauche zum erstellen eines benutzerdefinierten filters für diese oder gibt es eine andere Möglichkeit kann ich dies erreichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil Sie filtern möchten, auf zwei Dinge auf einmal-einige Eigenschaften der Freunde, die array-und auch die Anwender-Sie müssen erstellen Sie Ihre eigenen benutzerdefinierte filter akzeptiert 2 Parameter:
Dann rufe es so auf:
":searchText:Benutzer.name" ist der Weg passieren Sie weitere Argumente, um einen benutzerdefinierten filter.
Fiddle.
http://docs.angularjs.org/api/ng.filter:filter
$
als eine Magische Platzhalter.filter
s parameter. " - Funktion: Eine Prädikat-Funktion kann verwendet werden, um schreiben beliebiger Filter. Die Funktion wird aufgerufen, für jedes element des array. Das Ergebnis ist ein array der Elemente, die das Prädikat true zurück für."