html - Angular 复选框 "Select All"功能,最初只选中一个框

标签 html angularjs checkbox angularjs-ng-model

我有一个包含 3 个复选框的表单:“全选”、“选项 1”和“选项 2”。

<form id="selectionForm">
    <input type="checkbox" ng-model="selectAll" >Select all
    <br>
    <input type="checkbox" ng-checked="selectAll" checked>Option 1
    <br>
    <input type="checkbox" ng-checked="selectAll">Option 2
</form>

在初始页面加载时,我希望 选项 1 被选中。然后,如果选中了全选复选框,它应该会自动选中选项 1选项 2,以便全部选中。

问题是在初始页面加载时对 ng-checked="selectAll"进行评估,这会覆盖我最初仅检查选项 1(最初 selectAll = false)的尝试,因此未选择任何内容。

这似乎是一个解决起来很简单的问题,但我想不出解决方案...在此先感谢您的任何见解或建议!

最佳答案

另一种方法是为选项使用模型,在模型中设置默认选择,并让 Controller 处理全选逻辑。

angular.module("app", []).controller("ctrl", function($scope){
  
  $scope.options = [
    {value:'Option1', selected:true}, 
    {value:'Option2', selected:false}
  ];
  
  $scope.toggleAll = function() {
     var toggleStatus = !$scope.isAllSelected;
     angular.forEach($scope.options, function(itm){ itm.selected = toggleStatus; });
   
  }
  
  $scope.optionToggled = function(){
    $scope.isAllSelected = $scope.options.every(function(itm){ return itm.selected; })
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js">    </script>
<div ng-app="app" ng-controller="ctrl">
<form id="selectionForm">
    <input type="checkbox" ng-click="toggleAll()" ng-model="isAllSelected">Select all
    <br>
     <div ng-repeat = "option in options">
        <input type="checkbox" ng-model="option.selected" ng-change="optionToggled()">{{option.value}}
     </div>
</form>
  {{options}} 
</div>

关于html - Angular 复选框 "Select All"功能,最初只选中一个框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27451954/

相关文章:

php - 这段代码中的变量是否正确转义?

java - 在JAVA中显示 "Correct"和 "Wrong"

javascript - 在新选项卡中打开 Blob Url (IE)

javascript - AngularJS 单击添加/删除复选框和图片

AngularJS:插值时出错:{{ $index + 1 }}

jquery - 数据表 - 带复选框的行分组

java - 在启动应用程序时保存 "CHECK"复选框状态

javascript - 使用 jQuery 隐藏基于复选框的 div

jQuery .empty() && .append() 莫名其妙地失败了

html - 在 Ipad 上显示和隐藏导航菜单