我在输入元素中使用了“ng-model”,并使用chrome检查器观察了该元素。但是input元素的每个onxxx属性(包括onchange)都为null。那么,AngularJS如何捕获用户输入触发的“onchange”事件?
答案 0 :(得分:13)
如果在Chrome的“事件监听器”选项卡中检查标准文本输入元素(附加了ng-model),您将看到它附加了两个事件监听器:$destroy
和input
。
默认情况下,Angular会侦听input
个事件,如果浏览器不支持,则会回退到keydown
+ change
个事件。
使用jQlite的bind方法绑定事件(除非你还包含一个完整的jQuery,在这种情况下它的绑定方法将接管)。
您可以自己检查的示例输入元素位于input [email]指令文档页面。
答案 1 :(得分:-1)
您可以使用以下命令将事件侦听器附加到任何DOM节点:
node.addEventListener(eventName,listenerMethod,useCapture)
当你在node.onchange的方法之前分配时,使用addEventListener,你必须将事件监听器附加到事件'change'或'click'。
请参阅:https://developer.mozilla.org/en-US/docs/DOM/EventTarget.addEventListener