bouton de changement de style en fonction de l'état angularjs
J'ai un problème pour trouver le chemin le style d'un bouton en fonction de son état.
J'ai une question, et de répondre à quatre carreaux.
chaque carrelage est codé comme ceci:
<div class="button-default" ng-model="btn0" ng-click"evalAnswer(answer, btn0)">{{answer}}</div>
<div class="button-default" ng-model="btn1" ng-click"evalAnswer(answer, btn1)">{{answer}}</div>
<div class="button-default" ng-model="btn2" ng-click"evalAnswer(answer, btn2)">{{answer}}</div>
<div class="button-default" ng-model="btn3" ng-click"evalAnswer(answer, btn3)">{{answer}}</div>
Sur le contrôleur de côté, j'ai une fonction qui, sur cliquez, regardez la réponse et le retour de "bonnes" si la réponse est correcte, et "non" si la réponse n'est pas bonne.
Ce que je voudrais, c'est d'ajouter des boutons de style à l'intérieur de ces bonnes et non, états-unis, alors le bouton devient rouge dans le cas où la réponse est non, et en vert si c'est la bonne réponse. J'ai déjà créé la classe et j'ai seulement besoin de changer de bouton "par défaut" à la touche "bonne" ou la touche "mauvais". Aussi, Il a besoin de changer seulement les cliqué sur le bouton.
Aucune idée sur la manière de le faire?
- Vous avez besoin d'afficher la fonction appelée par ng-click, les états dans le JS.
Vous devez vous connecter pour publier un commentaire.
Utilisation ng-classe directive qui devraient changer de classe selon l'une quelconque condition
Dans votre cas, pour les deux cas, il doit être quelque chose comme:
Si vous souhaitez utiliser plusieurs cas:
Démo Violon
Il y a plusieurs façons d'accomplir ce que vous êtes désireux:
ng-classe utiliser pour définir des classes sur la base des conditions
ng-style utilisé lorsque vous ne pouvez pas définir une classe ou tout simplement besoin de changer de css simple
Je suggère d'utiliser ng-classe si le style est compliqué ou plusieurs changements sont nécessaires dans le css. la ng-classe accepte une expression qui peut être évaluée à un tableau de noms de classe, une chaîne délimitée par des noms de classe ou un mappage de noms d'objets.
Je pense que quelque chose comme cela devrait fonctionner pour les deux classes:
ou ternaire (à l'aide angulaire de la version 1.1.5)
Remarque si vous avez besoin d'appliquer une classe par défaut en outre à une certaine classe c'est comment serait fait:
ou un ternaire avec défaut
L'autre option, et celui que je pense pourrait fonctionner mieux pour votre problème est la ng-style. Puisque vous êtes seulement besoin de changer la couleur d'un bouton dans peut-être mieux de simplement changer la couleur, plutôt que de s'appliquer à différentes classes.
en supposant que: que le {{réponse}} est définie pour les valeurs évaluées (la réponse est bonne ou non).
Edit:
Pour le style conditionnel, il doit être mis dans votre contrôleur, si la réponse ne peut pas être utilisé dans le test conditionnel. Il semble que vous avez un objet btn0, et chacun de ces objets pourrait avoir une propriété (btn0.isGood) le pourrait être défini dans le evalAnswer(réponse, btn0) cliquez sur l'événement, et la modification du style.
$scope.isGood = false;
dans mon if/else-je changer isGood selon les états, puis-je utiliser isGood en ng-classe? Vais essayer ça merci ! Et oui, vous avez raison, il y a une classe par défaut qui est utilisé avant la réponse est cochée.