2017-11-21 11 views
0

私は前にやったことのある他の多くの関数と同様の関数を作成しました。ここでは、配置されたコントローラを介して$イベントを渡しました。また、ng-changeイベントのHTMLの要素の関数呼び出しでも、コンソールは$イベントがすべてのブラウザで定義されていないと言っています。

HTML:

<select data-ng-change="determineAbsenceInputs($event)" 

JS:

$scope.determineAbsenceInputs = function($event) { 
    console.log($event.target); 
} 

はまたJSFiddleで同じことを返す:http://jsfiddle.net/ADukg/16190/

他のすべての機能と同じように、私はイベントターゲットを参照するためにそれを使用しましたが、それは属性ですが、なぜこの機能でのみ起こっているのか分かりません。 NG-変更が変更イベントを処理するためのディレクティブではありません

答えて

1

issue

から(私は、これは名前を与え、混乱していることを を実現)、代わりに実際にngModelController。$ setViewValue通知 です()が呼び出され、 の値が変更されます(ng-changeは $ viewChangeListenersコレクションにリスナーを追加するため)。これは期待どおりです。

代わり

<select data-ng-change="determineAbsenceInputs(selectedAbsenceType)" data-ng-model="selectedAbsenceType" id="absenceTypeSelect" name="absenceTypeSelect" material-select watch class="validate" required> 

WORKING DEMO

+0

さて、おかげでNG-モデルを使用する必要があります。それを知らなかった。その場合、このアプローチを使用して、選択された要素のデータ非存在クラスにアクセスし、event.targetを使用できない場合はどうすればよいでしょうか? –

+0

この場合、ng-valueを使用する必要があります。これが役に立ったら – Sajeetharan

関連する問題