J'ai un formulaire pour répondre aux messages que je souhaite afficher uniquement lorsque isReplyFormOpen
est vrai, et chaque fois que je clique sur le bouton de réponse, je veux basculer si le formulaire est affiché ou non. Comment puis-je faire ceci?
javascript
html
angularjs
ng-show
liamzebedee
la source
la source
ng-class
:<span ng-click="started=!started" ng-class="started ? 'btn-danger' : 'btn-success' ">
+1. Merci:) ♥.Fondamentalement, je l'ai résolu en NE PAS -ing la
isReplyFormOpen
valeur chaque fois qu'il est cliqué:la source
ng-init
nécessaire?undefined
initialement et!undefined == true
Si basé sur cliquez ici, c'est:
la source
Il est à noter que si vous avez un bouton dans le contrôleur A et l'élément que vous souhaitez afficher dans le contrôleur B, vous devrez peut-être utiliser la notation par points pour accéder à la variable de portée entre les contrôleurs.
Par exemple, cela ne fonctionnera pas :
Pour résoudre ce problème, créez une variable globale (c'est-à-dire dans le contrôleur A ou votre contrôleur principal):
Ajoutez ensuite un préfixe `` global '' à vos variables de clic et d'affichage:
Pour plus de détails, consultez les États imbriqués et les vues imbriquées dans la documentation Angular-UI , regardez une vidéo ou lisez la compréhension des portées .
la source
Voici un exemple d'utilisation des directives ngclick & ng-if.
Remarque : que ng-if supprime l'élément du DOM, mais ng-hide masque juste l'affichage de l'élément.
la source
Si vous avez plusieurs menus avec sous-menus, vous pouvez utiliser la solution ci-dessous.
HTML
Il y a deux fonctions que j'ai appelées en premier: ng-click = hasSubMenu ('dashboard'). Cette fonction sera utilisée pour basculer le menu et elle est expliquée dans le code ci-dessous. Le ng-class = "{active: isActive ('/ customerCare / transaction')} il ajoutera une classe active à l'élément de menu actuel.
Maintenant, j'ai défini certaines fonctions dans mon application:
Tout d'abord, ajoutez une dépendance $ rootScope qui est utilisée pour déclarer des variables et des fonctions. Pour en savoir plus sur $ roootScope, consultez le lien: https://docs.angularjs.org/api/ng/service/ $ rootScope
Voici mon fichier d'application:
La fonction ci-dessus est utilisée pour ajouter une classe active à l'élément de menu actuel.
Par défaut, $ rootScope.showDash et $ rootScope.showCC sont définis sur false. Cela mettra les menus fermés lors du chargement initial de la page. Si vous avez plus de deux sous-menus, ajoutez en conséquence.
La fonction hasSubMenu () fonctionnera pour basculer entre les menus. J'ai ajouté une petite condition
il restera le sous-menu ouvert après le rechargement de la page en fonction de l'élément de menu sélectionné.
J'ai défini mes pages comme:
Vous ne pouvez utiliser la fonction isActive () que si vous avez un seul menu sans sous-menu. Vous pouvez modifier le code selon vos besoins. J'espère que cela aidera. Passez une bonne journée :)
la source