8

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

4

2 回答 2

13

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

默认情况下,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 回答