web-dev-qa-db-ja.com

anglejs ng-changeイベントでチェックボックスがチェックされているかチェックされていないかを検出します

チェックボックスがクリックされたときにチェックボックスがチェックされているかどうかを検出したい。

これは私が持っているものです:

<input type="checkbox" ng-model="answers[item.questID]" ng-change="stateChanged()" />

そして、コントローラーには次のものがあります:

$scope.stateChanged = function () {
    alert('test');
}

チェック/チェック解除時にアラートを発動できますが、チェックボックスの状態を検出するにはどうすればよいですか?同様の問題を見つけるために少し調査しましたが、必要なものを取得できませんでした。

ありがとう、Laziale

42
Laziale

Ng-changeメソッドでバインドされたng-modelanswers[item.questID])値自体を使用して、チェック済みかどうかを検出できます。

例:-

<input type="checkbox" ng-model="answers[item.questID]" 
     ng-change="stateChanged(item.questID)" /> <!-- Pass the specific id -->

そして

$scope.stateChanged = function (qId) {
   if($scope.answers[qId]){ //If it is checked
       alert('test');
   }
}
66
PSL

チェックボックスの状態は、バインドしたモデルに反映されます。この場合、$scope.answers[item.questID]

0
Brennan