Mam zdefiniowany obiekt użytkownika, jak poniżej.Jak zastosować filtr na wielu obiektach za pomocą AngularJS?
$scope.users = [{id: 1, name: 'Adam', friends: [{name: 'John', age: 21, sex: 'M'}, {name: 'Brad', age: 32, sex: 'M'}]}]
Następnie Mam następujący kod:
<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>
Teraz po wpisaniu w polu tekstowym tekst: „searchText”, chcę filtr, aby wyświetlić nazwę użytkownika i nazwę/wiek przyjaciela. Czy ktoś może mi pomóc, jak to zrobić?
Jeśli mam rację, to myślę, że muszę utworzyć niestandardowy filtr do tego lub czy istnieje inny sposób, w jaki mogę to zrobić?
Dziękuję bardzo Mark! Ale filtr filter (friends, searchText) będzie filtrował wszystkie obiekty znajomych tj. Imię i nazwisko, wiek i płeć lub tylko imię i wiek. Moim wymaganiem jest, aby tylko "imię" i "wiek" mogły być wyszukiwane, a wyniki będą filtrowane tylko na tych dwóch obiektach znajomych, ponieważ są to pola, które się wyświetlają, a nie na "seks" –
Zobacz zaktualizowaną odpowiedź. –
Zdaję sobie sprawę, ile to jest lat ... ale co może się wydarzyć, gdy mój tekst wejściowy "szukany tekst" jest zawsze niezdefiniowany w filtrze? Problemy z określaniem zakresu, oczywiście, ale dlaczego? – Clev3r