74 votes

Pourquoi avons-nous besoin de ng-click?

Les applications angulaires utilisent l'attribut ng-click() plutôt que l'événement onclick .

Pourquoi est-ce?

107voto

rakslice Points 1939

Angulaire ne change pas le sens de l' onclick d'attribut, il ajoute le parallèle ng-click attribut de prendre un Angulaire de l'expression. onclick prend un bon vieux code JavaScript, même lorsque vous êtes en utilisant Angulaire.

Concrètement, supposons que ce que vous faites dans un gestionnaire de clic est de la modification de certaines variables dans Angulaire de la portée, ou l'appel d'une fonction dans Angulaire à la portée que des variations de certaines variables. De le faire à partir du code JavaScript (comme ce que vous mettez dans onclick) nécessite un tas d'étapes

  • obtenir une référence à la portée
  • attribuer à la variable ou de la fonction
  • appelez scope.$apply , de sorte que rien de regarder les mises à jour pour les variables qui ont changé averti

Cela ressemble à:

<a onclick="var $scope = angular.element(event.target).scope(); $scope.yourVar = 42; $scope.$apply()">Go</a>

et avec ng-click et Angulaire de l'expression de la cession, presque tous qui est implicite:

<a ng-click="yourVar = 42">Go</a>

73voto

groner Points 721

ng-cliquez sur détient un angulaire de l'expression. Angulaire expressions sont évaluées dans le contexte de l'Angulaire de la portée, qui est lié à l'élément ayant la ng-cliquez sur l'attribut ou un ancêtre de l'élément.

L'angle de langage d'expression n'inclut pas de contrôle de flux consolidés et ne pouvez pas déclarer de variables ou de définir des fonctions. Ces limitations dire les modèles ne peuvent accéder aux variables et exécuter mis à disposition par un contrôleur ou de la directive.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X