Angular Apps verwenden ng-click()
eher das Attribut als das onclick
Ereignis.
Warum ist das?
javascript
angularjs
web-applications
BanksySan
quelle
quelle
ng-click
erlaubt. Warum dies so sein sollte, habe ich keine Ahnung.)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.
quelle
Angular ändert die Bedeutung des
onclick
Attributs nicht. Es fügt das paralleleng-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 erforderlichscope.$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>
quelle