Angular Apps verwenden ng-click()
eher das Attribut als das onclick
Ereignis.
Warum ist das?
Antworten:
ng-click enthält einen Winkelausdruck. Angular Ausdrücke werden im Rahmen eines Winkel ausgewertet Umfang , die an das Element gebunden ist , mit der ng-Klick - Attribut oder einen Vorfahren dieses Elements.
Die Angular-Ausdruckssprache enthält keine Flusssteuerungsanweisungen und kann keine Variablen deklarieren oder Funktionen definieren. Aufgrund dieser Einschränkungen können Vorlagen nur auf Variablen zugreifen und Funktionen ausführen, die von einem Controller oder einer Direktive bereitgestellt werden.
Angular ändert die Bedeutung des onclick
Attributs nicht. Es fügt das parallele ng-click
Attribut hinzu, um einen Winkelausdruck zu verwenden . onclick
Nimmt einfachen alten JavaScript-Code, auch wenn Sie Angular verwenden.
Angenommen, Sie ändern in einem Klick-Handler einige Variablen in einem Angular-Bereich oder rufen eine Funktion in einem Angular-Bereich auf, die einige Variablen ändert. Um dies mit JavaScript-Code (wie dem, was Sie eingeben würden onclick
) zu tun, sind einige Schritte erforderlich
scope.$apply
damit alles benachrichtigt wird, was nach Aktualisierungen der von Ihnen geänderten Variablen suchtDas sieht so aus:
<a onclick="var $scope = angular.element(event.target).scope(); $scope.yourVar = 42; $scope.$apply()">Go</a>
und mit ng-click
und einem Winkelausdruck für die Zuweisung ist fast alles implizit:
<a ng-click="yourVar = 42">Go</a>
ng-click
erlaubt. Warum dies so sein sollte, habe ich keine Ahnung.)