Wie fängt AngularJS Ereignisse wie 'onclick', 'onchange' intern ab?

8

Ich habe "ng-model" im Eingabeelement verwendet und dieses Element mit dem Chrom Inspector beobachtet. Aber alle onxxx-Eigenschaften (einschließlich onchange) des Eingabeelements waren null. Wie kann AngularJS dann das "onchange" -Ereignis durch Benutzereingaben erfassen?

    
firia2000 01.04.2013, 08:14
quelle

2 Antworten

13

Wenn Sie auf der Registerkarte Event Listeners von Chrome ein Standard-Texteingabeelement (mit angehängtem ng-Modell) überprüfen, werden zwei Ereignis-Listener angezeigt: $destroy und input .

Angular lauscht standardmäßig auf input event und wird, falls es vom Browser nicht unterstützt wird, auf keydown + change events zurückgesetzt.

Ereignisse werden mit der Bind-Methode von jQlite verknüpft (es sei denn, Sie haben auch eine vollständige jQuery-Komponente, in diesem Fall wird die Bind-Methode übernommen).

Ein Beispiel für ein Eingabeelement, das Sie selbst überprüfen können, finden Sie in der Eingabe [email] Richtlinie Seite.

Genaue Linie in der Winkelquelle (v1. 2.0rc1) verantwortlich für die Behandlung des Eingabeereignisses.

    
Stewie 01.04.2013, 08:44
quelle
-1

Sie können Ereignis-Listener an jeden DOM-Knoten anfügen, indem Sie Folgendes verwenden:

node.addEventListener (eventName, listenerMethod, useCapture)

Während Sie node.onchange eine Methode mit addEventListener zugewiesen haben, müssen Sie einen Event-Listener an das Ereignis "change" oder "click" anhängen.

Siehe: Ссылка

    
KKetch 01.04.2013 08:19
quelle

Tags und Links