我在输入元素中使用了“ ng-model”,并用chrome inspector观察了该元素。但是输入元素的每个onxxx属性(包括onchange)都是空的。然后,AngularJS如何捕获用户输入触发的“ onchange”事件?
如果在Chrome的“事件监听器”标签中检查了标准文本输入元素(已附加ng- model),则会看到该元素具有两个事件监听器:$destroy和input。
$destroy
input
默认情况下,Angular侦听input事件,如果浏览器不支持Angular,它将回退为keydown+ change事件。
keydown
change
事件是使用jQlite的bind方法绑定的(除非您还包括完整的jQuery,在这种情况下,它的bind方法将接管)。
您可以自己检查的示例输入元素位于输入[email]指令文档页面上。
Angular源(v1.2.0rc1)中的确切行负责处理输入事件。