2014-04-29 4 views
0
<div ng-repeat="blub in filtered = (blubs | filter:tag)"> 
    <span ng-repeat="tag in blub.tags" class="tag-box">{{tag}}</span> 
</div> 

Comment puis-je le dissocier en une requête? Je l'imaginais comme ceci:L'annularjs annule les répétitions en une requête

<span ng-repeat="tag in blub.tags in filtered = (blubs | filter: tag)>{{tag}}</span> 

objet blub a plus d'une étiquette, il y a plus d'un objet Blub.

EDIT: Plunker: http://plnkr.co/edit/mWjyryOsV5zZJisZzV3D BUT: Réduire 2 fois ng répétition dans une ng répétition qui montre les mêmes balises.

+0

Veuillez essayer et expliquer le problème un peu plus, plunkrs/demos sont toujours utiles – Blowsie

Répondre

0

Dans cette situation, je vous recommande d'abord de créer une collection au lieu de faire une double boucle.

<span ng-repeat="tag in getBlupList(filtered)" class="tag-box">{{tag}}</span> 

Où getBlupList (filtré) est la méthode JS. Une sorte de réducteur qui crée une liste au lieu de ce que vous avez. Je ne sais pas à quoi ressemble votre collection mais personnellement pour moi, la meilleure solution est d'utiliser Underscore.js lib. ".flatten()" ou " .pluck()"

+0

Ok donc il n'y a pas d'option le faire sans script? Parce que cela fait que toutes les bonnes fonctions de filtrage d'angulaire ne sont plus utiles, si de toute façon je dois filtrer dans le fichier .js avant d'avoir la liste. –

+0

Je ne sais pas comment le faire sans script. Et vous pouvez toujours utiliser des filtres. Vous pouvez créer un tableau ou une collection après avoir récupéré des données du serveur et ajouter cette variable à ng-repeat. C'est difficile de juger car je ne sais pas à quoi ressemble votre collection. – Lugaru

Questions connexes