expressions ng-repeat angulaires en tant que variables
Je suis en train de faire quelque chose comme ceci:
<ul>
<li ng-repeat="{{myRepeatExpression}}">{{row.name}}</li>
</ul>
Mais parce que le ng-repeat
logique est dans la compilation de l'état, de la directive, il traite le {{myRepeatExpression}}
comme un string au lieu d'une variable. Ce qui ne fonctionne pas, évidemment.
Est-il une solution de contournement pour qui?
source d'informationauteur Gilad
Vous devez vous connecter pour publier un commentaire.
Vous pouvez uniquement utiliser et d'expression avec
ng-repeat
et pas uninterpolated
valeur.Maintenant, dans le but de créer une dynamique reproductible liste, vous pouvez soit essayer:
ng-repeat
- c'est potentiellement plus cher depuis angulaire besoins à l'appel de la fonction d'abord, puis de déterminer si la collection a changé lors d'une$digest
cycle$watch
pour une variable donnée sur l'étendue de provoquer un changement de la liste - potentiellement plus efficace, mais si votre liste dynamique dépend plus d'une variable, il peut obtenir plus de commentaires et peut conduire à des bugs potentiels de l'oubli d'ajouter une nouvelle$watch
lorsqu'une nouvelle variable est nécessaireDémo plunker
JS:
HTML:
ng-repeat
accepte uniquement privateur, la syntaxe de l'expression comme dansrow in rows
maisrows
pourrait être une fonction ou d'une promesse dans votre contrôleur. Cependant, vous devez regarder attentivement les performances ng-repeat ne fonctionne pas bien avec des choses qui changent trop souvent (le redoutable max. 10 itérations d'erreur).Vous ne pouvez pas utiliser ng-repeat avec de la ficelle/variable qui doit représenter l'expression directement, mais vous pouvez créer la directive que interpoler/analyser cette valeur et passer à la ng-repeat argument et de recompiler l'élément.
Prendre un coup d'oeil à ce plunker: démo plunker accepté de répondre à
Veuillez également noter, que cette approche devrait causer des troubles dans imbriquée ng-se répète.