Angularjs filtre de l'objet imbriqué
J'ai angulaire de l'objet imbriqué comme ça.
est-il une façon de le filtrer pour imbriquée propriété
<li ng-repeat="shop in shops | filter:search">
search.locations.city_id = 22
Je suis ne montrant qu'élément parent, mais souhaitez filtrer par deux, comme:
search =
category_id: 2
locations:
city_id: 368
[
name: "xxx"
category_id: 1
locations: [
city_id: 368
region_id: 4
,
city_id: 368
region_id: 4
,
city_id: 368
region_id: 4
]
,
name: "xxx"
category_id: 2
locations: [
city_id: 30
region_id: 4
,
city_id: 22
region_id: 2
]
]
OriginalL'auteur zajca | 2013-08-29
Vous devez vous connecter pour publier un commentaire.
Oui, vous pouvez, si j'ai bien compris ton exemple correctement.
En fonction de la taille de votre collection, il peut être préférable de calculer la collection vous parcourez en
ng-repeat
de sorte que le filtre ne le fait pas en permanence comme les changements de modèle.http://jsfiddle.net/suCWn/
Fondamentalement, vous faites quelque chose comme cela, si je vous ai bien compris:
OriginalL'auteur Words Like Jared
Vous pouvez également filtre comme ceci (version 1.2.13+)
J'ai légèrement modifié votre violon: lien
vous pouvez contourner ce problème en attribuant modèle une valeur dans le contrôleur:
$scope.selectedCityId = ''
. Qui a pour effet de chargement de tous les éléments avant de modifier manuellement l'entréeS'il vous plaît être conscient du fait que le filtre standard compare les valeurs comme des chaînes de caractères qui correspondent eux depuis le début. Si vous demandez city_id 1 il sera de retour les boutiques situées dans les villes avec des id 10, 15, ou 12345. Il va aussi chercher seulement dans le premier objet dans la gamme, Pour éviter cela, vous devez écrire votre propre comparateur ou d'un filtre. Voir l'exemple: plnkr.co/modifier/Jirxxi
-1: @Envek dans son commentaire que "il ne rechercher que dans le premier objet dans la gamme" signifie d'être souligné. En utilisant le violon que vous avez donné, l'OP l'exemple du terme de recherche (city_id = 22) ne trouve pas de résultat, bien que l'objet avec category_id = 2 a un endroit que la valeur de la propriété.
OriginalL'auteur martinoss
Mise à jour "des Mots Comme Jared" réponse à utiliser des expressions régulières pour vérifier si elle contient la searchterm. De cette façon, commence filtrage lorsque vous tapez dans 1 nombre de sorte que vous n'avez pas à correspondre à la totalité de la parole
JSfiddle
OriginalL'auteur Damain Joseph