如何使用ng-model知道复选框的值

时间:2016-04-25 10:21:43

标签: angularjs

我有一个表单,在我提交此表单之前,如果选中或不选中,我希望根据复选框执行某些操作。

这是我的复选框:

<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合作,因为我只需要知道复选框的值,而不是在更改时进行处理。

我该如何解决这个问题?

2 个答案:

答案 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/