我在ng-repeat
里面有一个复选框,我想检查是否选中了复选框,使用它们的索引值
<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
这里我附上我的代码帮助如何执行此操作
答案 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>