我有一个表单,在我提交此表单之前,如果选中或不选中,我希望根据复选框执行某些操作。
这是我的复选框:
<input type="checkbox" name="resident" id="resident"
ng-model="resident" ng-init="resident=false">
在我的控制器中我有这个:
$scope.submitForm = function (isValid) {
if(!$scope.resident){
//code...
}else{
//code...
}
}
但是我总是将此复选框的值视为未定义,即使我已将其初始化为false
。
我不想与ng-change
合作,因为我只需要知道复选框的值,而不是在更改时进行处理。
我该如何解决这个问题?
答案 0 :(得分:2)
您附加到问题的代码不包含任何问题。问题是您未在此处发布的代码中的其他位置。请参考下面的代码,它确实有效。
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="">
<input type="checkbox" name="resident" id="resident"
ng-model="resident" ng-init="resident=false">{{resident}}
</div>
可能的问题: 请参阅附加到输入复选框的Scope有时会发生变量或模型已在父作用域中,并且我们正试图在子作用域中进行操作。使用batrang之类的chrome工具可以更好地指导您进行子级和父级范围检查。
答案 1 :(得分:1)
查看:
<input type="checkbox" name="resident" id="resident" ng-model="resident.checked">
控制器:
$scope.resident = {
checked: false;
}
那就是它!该模型将通过false
指令自动从true
切换到ng-model
。
见http://jsfiddle.net/Lvc0u55v/2989/