Ho l'oggetto utente definito come di seguito.Come applicare un filtro su più oggetti usando AngularJS?
$scope.users = [{id: 1, name: 'Adam', friends: [{name: 'John', age: 21, sex: 'M'}, {name: 'Brad', age: 32, sex: 'M'}]}]
Poi ho il seguente codice:
<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>
Ora, quando si digita nella casella di testo il testo: 'Testo di ricerca', voglio il filtro per visualizzare il nome dell'utente e il nome/età dell'amico Qualcuno può aiutarmi con come farlo?
Se sono corretto, allora penso che sia necessario creare un filtro personalizzato per questo o c'è qualche altro modo per ottenerlo?
Grazie mille Marco! Ma filterFilter (friends, searchText) filtrerà su tutti gli oggetti di amici, nome, età e sesso o solo nome ed età. Il mio requisito è che voglio solo 'nome' e 'età' per essere ricercabili e risulta filtrato solo su questi due oggetti di amici, come quelli sono i campi visualizzati e non su 'sesso' –
Vedere la risposta aggiornata. –
Mi rendo conto di quanti anni ha ... ma cosa potrebbe succedere quando il "testo di ricerca" del mio input è sempre indefinito all'interno del filtro? Problemi di scoping, ovviamente, ma perché? – Clev3r