AngularJS如何内部捕获'onclick','onchange'等事件?

时间:2013-04-01 08:14:37

标签: angularjs

我在输入元素中使用了“ng-model”,并使用chrome检查器观察了该元素。但是input元素的每个onxxx属性(包括onchange)都为null。那么,AngularJS如何捕获用户输入触发的“onchange”事件?

2 个答案:

答案 0 :(得分:13)

如果在Chrome的“事件监听器”选项卡中检查标准文本输入元素(附加了ng-model),您将看到它附加了两个事件监听器:$destroyinput

默认情况下,Angular会侦听input个事件,如果浏览器不支持,则会回退到keydown + change个事件。

使用jQlite的bind方法绑定事件(除非你还包含一个完整的jQuery,在这种情况下它的绑定方法将接管)。

您可以自己检查的示例输入元素位于input [email]指令文档页面。

Exact line in Angular source (v1.2.0rc1)负责处理输入事件。

答案 1 :(得分:-1)

您可以使用以下命令将事件侦听器附加到任何DOM节点:

node.addEventListener(eventName,listenerMethod,useCapture)

当你在node.onchange的方法之前分配时,使用addEventListener,你必须将事件监听器附加到事件'change'或'click'。

请参阅:https://developer.mozilla.org/en-US/docs/DOM/EventTarget.addEventListener