簡體   English   中英

AngularJS-為什么選擇下拉列表沒有更改事件

[英]AngularJS - Why select drop down doesn't have $event on change

我是AngularJS的新手。 我有一個問題,為什么ng-change不通過$ event?

的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>

腳本

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/ Click會傳遞有效的$ event,但change不會。 有人可以解釋這種行為嗎?

只是為了說明顯而易見,文檔說ngClick將通過事件,但是ngChange沒有此類文檔。

那么,您要問的是Angular的設計師為什么選擇這樣做? 我的想法是ngClick是由於單擊而觸發的,因此有意義的是將有與指令觸發相關的鼠標事件。 另一方面, ngChange是任何更改模型的用戶操作的結果,該操作可能與各種事件而不是一個特定事件相關聯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM