我是 AngularJS 的新手。我有一个问题,为什么ng-change
$事件没有通过?
HTML
<div ng-controller="foo">
<select ng-model="item" ng-options="opts as opts.name for opts in sels" ng-change="lstViewChange($event)" ng-click="listViewClick($event)"></select>
</div>
Script
var myApp = angular.module('myApp', []);
angular.element(document).ready(function() {
angular.bootstrap(document, ['myApp']);
});
function foo($scope) {
$scope.sels = [{id: 1, name: 'a'}, {id: 2, name: 'b'}];
$scope.lstViewChange = function($event){
console.log('change', $event); //undefined
}
$scope.listViewClick = function($event){
console.log('click', $event); //object
}
}
看看这个小提琴http://jsfiddle.net/QfZZH/ http://jsfiddle.net/QfZZH/. Click
传递一个有效的 $event 但是change
没有。有人可以解释这种行为吗?
只是为了说明显而易见的事情,文档说ngClick
将通过该事件,但是ngChange
没有这样的文档。
那么,您要问的是为什么 Angular 的设计者选择这样做?我的想法是ngClick
由于单击而触发,因此有一个与指令触发相关的鼠标事件是有意义的。ngChange
另一方面是改变模型的任何用户操作的结果,它可能与各种事件而不是一个特定事件相关联。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)