あなたがチェックボックスがオンまたはオフされたときに、関数を実行する代わりにng-checked
のng-model
とng-change
を使用することができます。
<input id="myInput" type="checkbox" ng-model="myModel.isChecked" ng-change="checkboxChanged()">
あなたのコントローラでは、あなたが機能してイベントを処理することができますので、こと:
:
$scope.myModdel = {
isChecked = false //setting initial value for checkbox
};
$scope.checkboxChanged = function() {
if(some validation error && $scope.myModel.isChecked) {
$scope.myModel.isChecked = false; // uncheck checkbox
}
}
ドキュメントで説明したように、両方のng-model
とng-checked
を使用しないでください10
[ng-checked]は、予期しない動作につながる可能性があるため、ngModelと一緒に使用しないでください。
あなたはそうのようなng-class
を使用して、あなたのCSSの問題を解決することができます:
<input id="myInput" type="checkbox" ng-model="myModel.isChecked" ng-change="checkboxChanged()" ng-class="{'my-class-name': myModel.isChecked }">
私はchecked属性を使用してCSSを持っているので、私は、NG-確認する必要があります。 ng-clickとng-checkedを使用すると考えました: ng-modelとng-checkedの両方のような使い方。 – aeroxr1
ああ、そうです。あるいは、 'isChecked'スコープ変数でウォッチを設定することもできます。 –
ウォッチャにはそれ自体の問題があります。私はまだ最初の答えをお勧めし、あなたのスタイリングの問題を解決するためにcheckedプロパティの代わりに 'ng-class'を使います。 –