Javascript 如何选择嵌套ng repeat中的所有复选框
我正在尝试创建一个列表,其中有多个select all按钮可用于ng repeat复选框。 HTML代码Javascript 如何选择嵌套ng repeat中的所有复选框,javascript,angularjs,Javascript,Angularjs,我正在尝试创建一个列表,其中有多个select all按钮可用于ng repeat复选框。 HTML代码 <div class="col-xs-12"ng-repeat="items in testArray"> <div class="col-xs-6"> {{items.brand}} </div> <div class="col-xs-6 col-sm-offset-6"> <bu
<div class="col-xs-12"ng-repeat="items in testArray">
<div class="col-xs-6">
{{items.brand}}
</div>
<div class="col-xs-6 col-sm-offset-6">
<button ng-click="selectAll()">select All</button>
<div ng-repeat="i in items.form">
<input type="checkbox"/>{{i.formName}}
</div>
</div>
</div>
{{items.brand}
全选
{{i.formName}}
您可以像这样简单地将变量设置为true
ng-click="selectAll = true"
然后使用ng checked
指令将复选框设置为checked(当内部表达式为true时)
ng-checked="selectAll"
HTML
<div class="col-xs-12"ng-repeat="items in testArray">
<div class="col-xs-6">
{{items.brand}}
</div>
<div class="col-xs-6 col-sm-offset-6">
<button ng-click="selectAll = true">select All</button>
<div ng-repeat="i in items.form">
<input type="checkbox" ng-checked="selectAll"/>{{i.formName}}
</div>
</div>
</div>
{{items.brand}
全选
{{i.formName}}
请检查指令。您需要将其添加到输入中
然后在selectAll()方法中,将每个项的isChecked属性设置为true 创建了一个小提琴,展示了您对“全选”要求的需求-
//html
- 全部检查
-
{{item.Name}
//js
角度模块(“CheckAllModule”,[])
.controller(“checkboxController”,函数checkboxController($scope){
$scope.Items=[{
名称:“第一项”
}, {
名称:“项目二”
}, {
名称:“项目三”
}];
$scope.checkAll=函数(){
如果($scope.selectedAll){
$scope.selectedAll=true;
}否则{
$scope.selectedAll=false;
}
angular.forEach($scope.Items,function(item){
item.Selected=$scope.selectedAll;
});
};
});
您可以尝试一下。在这个示例中,您可以根据需要对其进行操作
html:
全选
复选框
看看下面给出的代码片段,这会给你一些想法
var-app=angular.module(“myApp”,[]);
应用程序控制器('demoCtrl',函数($scope){
$scope.itemsArray=[{name:“Test 1”,forms:[{formName:“xyz 1”},{formName:“xyz 1”},{name:“Test 2”,forms:[{formName:“xyz 2”},{formName:“xyz 1”},{name:“Test 3”,forms:[{formName:“xyz 3”},{formName:“xyz 1”}];
$scope.selectAll=功能(项目){
对于(var i=0;i
{{item.name}
全选
取消选择全部
您能再解释一下吗?包含代码当前状态的JSFIDLE将非常好。感谢Gopinath,但我需要选中嵌套ng repeat中的复选框。在上面的代码中,我嵌套了ng Repeatso,实现方式是一样的,抓住上面的逻辑:)我需要将选中复选框的值添加到数组中。我该怎么做?感谢您的帮助Useng change=“toggle(i)”
调用控制器中的一个函数,将i
添加到数组中,您可以从数组@Tharindu Senanayakhethan获取选中复选框的值。您创建了我的dayDinesh Event,尽管这有助于我选中所有复选框,但当我选中单个复选框时,我无法获取所选单个复选框的值。是否有一个解决方案,您还应该获得单个复选框值,在控制台中打印出项目对象并查看详细信息,您选择的特定对象(不是所有项目)中存在“isChecked”值。为什么不使用单个函数
?示例:handlecheckbox(项目、标志)
,然后在视图中:
,删除时相同:
。
//html
<div>
<ul ng-controller="checkboxController">
<li>Check All
<input type="checkbox" ng-model="selectedAll" ng-click="checkAll()" />
</li>
<li ng-repeat="item in Items">
<label>{{item.Name}}
<input type="checkbox" ng-model="item.Selected" />
</label>
</li>
</ul>
</div>
//js
angular.module("CheckAllModule", [])
.controller("checkboxController", function checkboxController($scope) {
$scope.Items = [{
Name: "Item one"
}, {
Name: "Item two"
}, {
Name: "Item three"
}];
$scope.checkAll = function () {
if ($scope.selectedAll) {
$scope.selectedAll = true;
} else {
$scope.selectedAll = false;
}
angular.forEach($scope.Items, function (item) {
item.Selected = $scope.selectedAll;
});
};
});
$scope.test=function(event){
if(event.currentTarget.checked==true)
{
var togglestatus=$scope.isAllSelected;
angular.forEach($scope.options,function(object){
object.selected=togglestatus
})
}else{
angular.forEach($scope.options,function(object){
object.selected=false
})
}
}
<body ng-app="test" ng-controller="testctrl">
<label>
<input type="checkbox" ng-model="isAllSelected" ng-click="test($event)">SelectAll</label>
<div ng-repeat="option in options">
<input type="checkbox" ng-model="option.selected">checkbox</div>
</body>