html – 角度复选框“全选”功能,最初只能选择一个框

前端之家收集整理的这篇文章主要介绍了html – 角度复选框“全选”功能,最初只能选择一个框前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个包含3个复选框的窗体:“全选”,“选项1”和“选项2”.
  1. <form id="selectionForm">
  2. <input type="checkBox" ng-model="selectAll" >Select all
  3. <br>
  4. <input type="checkBox" ng-checked="selectAll" checked>Option 1
  5. <br>
  6. <input type="checkBox" ng-checked="selectAll">Option 2
  7. </form>

在初始页面加载时,我只需要选中选项1.然后如果选中所有复选框被选中,它应该自动检查选项1和选项2,以便选择所有.

问题是在初始页面上加载ng-checked =“selectAll”被评估,这会覆盖我最初只检查选项1(selectAll = false最初)的尝试,因此没有选择任何内容.

这似乎是一个简单的问题要解决,但我无法找出解决方案…提前感谢任何见解或建议!

解决方法

另一种方法是使用模型的选项,在模型中设置默认选择,并让您的控制器处理所有选择的逻辑.
  1. angular.module("app",[]).controller("ctrl",function($scope){
  2. $scope.options = [
  3. {value:'Option1',selected:true},{value:'Option2',selected:false}
  4. ];
  5. $scope.toggleAll = function() {
  6. var toggleStatus = !$scope.isAllSelected;
  7. angular.forEach($scope.options,function(itm){ itm.selected = toggleStatus; });
  8. }
  9. $scope.optionToggled = function(){
  10. $scope.isAllSelected = $scope.options.every(function(itm){ return itm.selected; })
  11. }
  12. });
  1. <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"> </script>
  2. <div ng-app="app" ng-controller="ctrl">
  3. <form id="selectionForm">
  4. <input type="checkBox" ng-click="toggleAll()" ng-model="isAllSelected">Select all
  5. <br>
  6. <div ng-repeat = "option in options">
  7. <input type="checkBox" ng-model="option.selected" ng-change="optionToggled()">{{option.value}}
  8. </div>
  9. </form>
  10. {{options}}
  11. </div>

猜你在找的HTML相关文章