如何使用索引值检查angularjs中的复选框是真还是假

时间:2017-05-09 09:42:29

标签: angularjs checkbox

我在ng-repeat里面有一个复选框,我想检查是否选中了复选框,使用它们的索引值

的HTML

<div ng-repeat="Name in Names">
    <input type="checkbox" 
           ng-change="checkchange(Name .MaterialStream, $index)"
           ng-model="Name.MaterialStream" />
</div>

控制器

$scope.checkchange=function(index){
      $scope.Names[index].active='true';
}

现在,当我选中复选框时,我得到了正确的值。我必须获得有效价值true,但我有检查意味着有效应该更改为false在我的情况下true这里我附上我的代码帮助如何执行此操作

4 个答案:

答案 0 :(得分:2)

您可以直接绑定Name.active而无需使用ng-repeat

<div ng-repeat="Name in Names">         
  <input type="checkbox" ng-model="Name.active" />
</div>

由于您将Name.MaterialStream绑定到复选框,因此您可以在Name.active中根据ng-change设置$scope.checkchange=function(index){ $scope.Names[index].active = $scope.Names[index].MaterialStream; }

render()

答案 1 :(得分:1)

要获取复选框的值,您只需返回模型本身。

<强> HTML

$scope.checkchange=function(index){
    return $scope.Names[index].MaterialStream;
}

<强> JS

checkchange

请注意,我删除了传递给index函数的第一个参数,因为它之前没有使用过。实际上,在您检查$index变量之前,它不会保留真实的esterno.js - 值。

答案 2 :(得分:1)

ng-model足以存储true false复选框,您根本不需要$index,但如果您必须按$index执行此操作,那么你也可以使用ng-model

在代码中查看此Fiddle示例。

此外:在上述代码中,checkchange()方法的定义并不接受first argument,这就是问题所在。如果你不打算消费它,你就不应该通过它。

答案 3 :(得分:0)

这是您的解决方案。用工作实例

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.Names = [{value : true}, {value : true},{value : false},{value : false},{value : true}]
        $scope.toggleSelection = function(x,index,event) {
          // how to check if checkbox is selected or not
          //alert(index + ' is ' + event.target.checked);  
          $scope.Names[index].Active = $scope.Names[index].value;
        };
});
<body ng-app="myApp" ng-controller="myCtrl">
  <div ng-repeat="Name in Names">
   {{$index}}
   <input type="checkbox" id="" name="check_box" 
          value="{{x}}"
          ng-change="toggleSelection(x.value,$index,$event)"
          ng-model="Name.value" > {{Name.Active}}
  </div>
  
  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>