Maison > Questions et réponses > le corps du texte
<li ng-repeat="téléphone dans les téléphones|filter:query">
Généralement, le filtrage s'écrit ainsi, mais je souhaite cibler seulement une partie des données. Comment implémenter le filtrage sur phone.name ? ?
曾经蜡笔没有小新2017-05-15 16:58:17
<li ng-repeat="téléphone dans les téléphones|filtre :{'nom' : requête}">
漂亮男人2017-05-15 16:58:17
Selon la documentation officielle, il existe plusieurs façons d'y parvenir :
{{ filter_expression | filter : expression : comparator}}
1. Comme méthode donnée par Guox, utilisez l'expression :
Objet : un objet modèle peut être utilisé pour filtrer des propriétés spécifiques sur des objets contenus dans un tableau. Par exemple, le prédicat {name:"M", phone:"1"} renverra un tableau d'éléments dont le nom de propriété contient "M". " et le téléphone de propriété contenant "1".
Utilisé comme objet, utilisé pour filtrer les attributs spécifiés des éléments du tableau, tels que expression = {name : "M", phone : "1"}, puis il filtrera que le nom dans le tableau contient 'M' et le téléphone contient l'élément '1'.
Alors utilisez simplement la méthode suivante
<li ng-repeat="phone in phones|filter:{name:query}">
2. Le comparateur peut être utilisé :
Comparateur utilisé pour déterminer si la valeur attendue (de l'expression de filtre) et la valeur réelle (de l'objet dans le tableau) doivent être considérées comme une correspondance.
fonction (réelle, attendue) : la fonction sera étant donné la valeur de l'objet et la valeur du prédicat à comparer et doit renvoyer vrai si les deux valeurs doivent être considérées comme égales.
La valeur de retour de Comparator peut être utilisée pour déterminer s'il existe une correspondance. Les paramètres d'entrée sont réels (éléments du tableau) et attendus (entrée)
Puis définissez une fonction
$scope.customerFilter = customerFilter;
function customerFilter(actual, expected){
return actual.name.contains(expexted) ? true : false;
}
前端使用
<li ng-repeat="phone in phones|filter:query:customerFilter">