Kurze Antwort: Es gibt keine Möglichkeit dies in Vanille AngularJS zu tun, kann aber mit einem Hack durchgeführt werden.
Lange Antwort: Die Ausdrücke, die Sie in DOM-Ereignisse verwenden Umgang mit Richtlinien (wie ng Klick ng-keydown und ng einreichen) durch Schräg die $parse Service zusammengestellt. Sie können sehen, wo dies innerhalb der code for the event directive geschieht. Der $ parse-Dienst enthält eine eigene Implementierung eines Lexers und Parsers, die den Ausdruck in JavaScript kompilieren.
Das generierte JavaScript verfügt über eine Reihe von Sicherheitsüberprüfungen, um zu verhindern, dass Dinge passieren, wie z. B. Fehler durch nicht definierte Funktionen. Eine Schaltfläche mit diesem Code:
<button ng-click="handleClick()">Click Me!<button>
Wird bis zu erzeugen JavaScript für die Event-Handler beenden, die etwas ähnliches wie dies tut:
if ($scope.handleClick != null) {
return $scope.handleClick();
} else {
return undefined;
}
Es ist trivial Eckige zu modifizieren diese Prüfung zu entfernen. Ich habe eine small patch gemacht, die die obige "if" -Klausel aus dem generierten JavaScript entfernt und deshalb Fehler verursacht, wenn Sie versuchen, eine undefinierte Funktion zu verwenden.
Werfen Sie einen Blick auf https://stackoverflow.com/questions/29155171/expose-javascript-errors-in-angular-js –
Können Sie den Quellcode hinzufügen? – Krishan
@ Kristján: netter Link. Ich denke, dass es keine Möglichkeit gibt, diese Fehler zu erfassen, ohne angular.js zu ändern ... – Mat