web-dev-qa-db-fra.com

Désactiver ng-click sur certaines conditions d'application pour tous les types d'élément

Dans mon application, j'ai lié plusieurs éléments avec la directive ng-click comme ci-dessous

<a ng-click="DoSomething()"/>
<button ng-click="DoSomethingElse()">xyz</button>
<span ng-click="DoSomething()"></span>

Maintenant, dans mon application, dans certains scénarios, je veux que le comportement par défaut de ng-click se produise, mais dans certains scénarios, je veux désactiver complètement la fonction de rappel (DoSomething (), DoSomethingElse () ..) à appeler ..

Pour vérifier ces scénarios, j'ai une variable d'étendue dire $scope.IsClickEnable = true/false;

Alors, comment puis-je accomplir ce genre de comportement?

Je peux utiliser ng-disable pour désactiver les éléments mais cela ne fonctionnera que sur le type d'éléments de bouton, donc cela ne fonctionnera pas dans mon scénario

Et je peux également vérifier les conditions dans chaque appel de fonction, mais je veux un moyen plus spécifique d'accomplir cela en remplaçant le comportement ng-click ou quelque chose.

26
Rushi Soni

Fait comme ça:

<button ng-click="!IsClickEnable||DoSomethingElse()">xyz</button>

lorsque la valeur de IsClickEnable est vraie, la fonction sera appelée sur le bouton, puis la fonction 'DoSomethingElse ()' sera appelée sinon elle ne sera pas appelée

68
Aniket