Ajouter ng-cliquez sur l'événement à angular-ui accordion
Je suis en utilisant angular-ui et ont commencé à utiliser des accordéons.
J'ai besoin de mettre le feu à un ng-click
cas quand quelqu'un ouvre ou ferme un accordéon groupe.
J'ai fait quelques recherches et trouvé ce fil: angular-ui problème
- Il lié à un plunker qui montre une solution qui n'est pas satisfaisant pour mon cas d'utilisation.
Voici les solutions html:
<accordion>
<accordion-group>
<accordion-heading>
<span ng-click="foo()">Try clicking me!</span>
</accordion-heading>
Some Body 3
</accordion-group>
</accordion>
Cependant la ng-cliquez sur l'événement se déclenche uniquement si vous cliquez sur la plage de texte. Si vous cliquez à l'extérieur du texte de l'accordéon s'ouvre ou se ferme sans aucun événement click.
Pour corriger cela j'ai essayé de faire les travées de largeur & hauteur de 100% et réglage display: block.
J'ai aussi envisagé de retirer le rembourrage entièrement, mais je me demandais si il ya une meilleure façon que de piratage.
Personne ne sait comment fixer le ng-cliquez sur l'événement pour l'ensemble de l'accordéon groupe? Ou comment faire de la durée de remplissage de l'ensemble du groupe?
La totalité de mon code:
<accordion close-others="true">
<accordion-group ng-repeat="question in level">
<accordion-heading style="padding: 0">
<div style="display: block; margin: 0px" ng-click="set_question(question.title)">{{ question.title }}</div>
<i class="icon-check" ng-show="has_solved_all"></i>
</accordion-heading>
<span ng-bind-html-unsafe="question.content"></span>
</accordion-group>
</accordion>
<br>
Question Open: {{ question_open }}
OriginalL'auteur robert king | 2013-08-23
Vous devez vous connecter pour publier un commentaire.
Pourquoi avez-vous besoin
ng-click
solution spécifique? Il y a unis-open
attribut que vous pouvez regarder pour, et qui déclenche à l'ouverture/fermeture d'un accordéon.Ressemble à stackoverflow.com/a/15642577/860421. S'agit-il?
oups - ressemble. Dans tous les cas, je pense que nous pouvons marquer cette question comme en double.
est-ce une bonne idée d'utiliser $watch. Comme angulaire de ne pas encourager l'utilisation de $watch. comme nous sommes interfaring avec l'empreinte de cycle.
OriginalL'auteur 0xc0de
Créer un haut niveau de div en vertu de l'accordéon ou l'intitulé de la déplacer
à l'intérieur de l'élément div -
Cela devrait faire de la magie.
Ci-dessous fonctionne pour moi-
De modifier et de vérifier, dans le plunker http://plnkr.co/edit/B3LC1X?p=preview
journal de la console.
Je sais que la question est ancienne, mais d'autres peuvent se servir de cette réponse.
OriginalL'auteur milkyway
Si vous entend pour en ajouter un autre, cliquez avec le un existe de l'événement open. Je suggère d'ajouter la directive soufflet à l'intérieur de la balise:
Où l'templateFunctionClick.html:
assurez-vous d'ajouter $de l'événement.stopPropagation(); afin de ne pas l'appeler en même temps que le clic de toggelOpen().
OriginalL'auteur haya