J'ai un ensemble d' <li>
éléments.
<ul>
<li ng-class="{current: selected == 100}">
<a href ng:click="selected=100">ABC</a>
</li>
<li ng-class="{current: selected == 101}">
<a href ng:click="selected=101">DEF</a>
</li>
<li ng-class="{current: selected == $index }"
ng-repeat="x in [4,5,6,7]">
<a href ng:click="selected=$index">A{{$index}}</a>
</li>
</ul>
Lorsqu'un utilisateur clique sur l'un des éléments d'adresse ci-dessus, alors il devrait, définir la valeur de selected et afficher l'un des <DIV>
éléments ci-dessous:
<div ng:show="selected == 100">100</div>
<div ng:show="selected == 101">101</div>
<div ng-repeat="x in [4,5,6,7]" ng:show="selected == $index">{{ $index }}</div>
Cela fonctionne pour les deux premiers cas.
- Lorsque l'utilisateur clique sur ABC, le premier
<DIV>
affiche 100 et change de couleur en rouge. - Lorsque DEF est cliqué, 101 s'affiche et DEF devient rouge.
Cependant cela ne fonctionne pas du tout pour A0, A1, A2 et A3
- Lorsqu'un utilisateur clique sur A0, A1, A2 ou A3, le correct ne s'affiche pas, la valeur sélectionnée n'est pas définie et la couleur de TOUS les ng-répétitions A0, A1, A2 et A3 devient rouge.
Ceci est mieux montré si vous regardez ce Plunker:
http://plnkr.co/edit/7HMeObplaBkx5R0SntjY?p=preview
Notez qu'en haut, j'ai ajouté {{ selected }}
comme aide au débogage en haut. De plus, ils x in [4,5,6,7]
sont simplement destinés à simuler une boucle. Dans la vraie vie, j'ai ça ng-repeat="answer in modal.data.answers"
.
Est-ce que quelqu'un sait comment je peux configurer cela pour que le li
courant de classe soit réglé au bon moment et que les DIV
spectacles au bon moment pour les A0, A1, A2 et A3 <li>
et<DIV>
Comme l'a mentionné johnnyynnoj, ng-repeat crée une nouvelle portée. J'utiliserais en fait une fonction pour définir la valeur. Voir plunker
JS :
HTML :
la source
ng:click
marche vraiment? Je pensais que c'étaitng-click