Passer une référence à l'objet DOM avec ng-cliquez sur
J'ai plusieurs éléments avec le même rappel sur ng-cliquez sur:
<button ng-click="doSomething()"></button>
<button ng-click="doSomething()"></button>
<button ng-click="doSomething()"></button>
<button ng-click="doSomething()"></button>
//In controller:
$scope.doSomething = function() {
//How do I get a reference to the button that triggered the function?
};
Comment puis-je obtenir la référence à l'objet qui fait l'appel à doSomething? (J'ai besoin de supprimer un attribut de celui-ci)
- Qu'essayez-vous de réaliser? Pourquoi avez-vous besoin de supprimer un attribut? Le point de l'ensemble de AngularJS est le fait que vous n'avez pas à faire de manipulation du DOM.
- Chaque bouton permet de basculer l'attribut lecture seule sur des entrées différentes
Vous devez vous connecter pour publier un commentaire.
L'angle moyen est indiqué dans l'angle de docs 🙂
https://docs.angularjs.org/api/ng/directive/ngReadonly
Voici l'exemple qu'ils utilisent:
Fondamentalement, l'angle est de créer un modèle objet qui peut contenir de si oui ou non l'entrée doit être en lecture seule, puis de définir cet objet de modèle en conséquence. La beauté du moment cinétique est que la plupart du temps vous n'avez pas besoin de faire de manipulation du dom. Vous avez juste angulaire rendre la vue la façon que votre modèle est défini (laissez angulaire de faire la manipulation du dom pour vous et de garder votre code propre).
Donc, fondamentalement, dans votre cas, vous voulez faire quelque chose comme ci-dessous, ou découvrez cette exemple.
ng-repeat
et je veux savoir la position dans le document de juste cliqué sur le bouton, ou de ses frères et sœurs. Alors, comment à la meilleure approche peut être applicable?Pendant que vous effectuez les opérations suivantes, techniquement parlant:
C'est probablement quelque chose que vous ne pas envie de faire comme AngularJS philosophie est de se concentrer sur le modèle de la manipulation et de laisser AngularJS faire le rendu (basé sur des notes de l'ensemble des déclarations de l'INTERFACE utilisateur). La manipulation des éléments du DOM et les attributs d'un contrôleur est un gros no-no dans AngularJS monde.
Vous devriez vérifier cette réponse pour plus d'info: https://stackoverflow.com/a/12431211/1418796
ng-readonly
directive. Mais je vous propose d'en ouvrir une autre question avec un exemple de code dans le plnkr.co$event
. Vous pouvez vous contenter de référenceevent
dans votre fonction (sans le$
) pour tirer l'information d'événement par exempleevent.currentTarget