我在输入元素中使用了“ng-model”,并使用 chrome 检查器观察了该元素。但是输入元素的每个 onxxx 属性(包括 onchange)都是空的。那么,AngularJS如何捕捉用户输入触发的“onchange”事件呢?
问问题
14161 次
2 回答
13
如果在 Chrome 的事件侦听器选项卡中检查标准文本输入元素(附加了 ng-model),您将看到它附加了两个事件侦听器:$destroy
和input
.
默认情况下,Angular 会监听input
事件,如果浏览器不支持它,它将回退到keydown
+change
事件。
事件与 jQlite 的 bind 方法绑定(除非您还包含完整的 jQuery,在这种情况下,它的 bind 方法将接管)。
您可以在input [email]指令文档页面上找到您可以自行检查的示例输入元素。
Angular 源代码 (v1.2.0rc1)中负责处理输入事件的确切行。
于 2013-04-01T08:44:47.903 回答
-1
您可以使用以下方法将事件侦听器附加到任何 DOM 节点:
node.addEventListener(eventName, listenerMethod, useCapture)
当您在将方法分配给 node.onchange 之前使用 addEventListener 时,您必须将事件侦听器附加到事件“更改”或“单击”。
请参阅:https ://developer.mozilla.org/en-US/docs/DOM/EventTarget.addEventListener
于 2013-04-01T08:19:17.217 回答