Angular强制复选框已选中状态

时间:2014-06-19 20:43:57

标签: angularjs

我目前正在将我们的角度js的应用版本从1.0.8升级到最新的稳定版本并遇到一个有趣的问题。

我们有一组用于过滤信息的复选框,通常选项包括:

  • 所有
  • 过滤器1
  • 过滤器2
  • 过滤器N

希望点击时选中“全部”复选框,保持选中状态。它将执行额外的逻辑来确定是否选中了其他复选框,如果它们是,则将其检查状态切换为关闭状态。我用1.0.8完成了这个,但没有最新版本的角度。

在最基本的设置中,我们只有一个复选框,其中ng-model值设置为某个布尔范围变量,ng-click定义为某个函数。

我有一个plunker演示,可以在1.0.8和1.2.18之间切换以说明更改,在这里:http://plnkr.co/edit/WaTj6e33x4SZ2NkKStsC?p=info

HTML:

<body ng-app='example' ng-controller="mainCtrl">
    <h1>Hello Plunker!</h1>

    <button type="button" ng-click="toggleCb(true)">All Checked</button>
    <button type="button" ng-click="toggleCb(false)">All Unchecked</button>
    <div>
      <input type="checkbox" ng-model="allCheckbox" ng-click="toggleCb(true)" id="all"/>
      <label for="all">All</label>
    </div>
    <div>Imagine more checkbox options</div>

    <div>
      <p>Value for checkbox is: {{ allCheckbox }}</p>
    </div>
</body>

JS:

angular.module('example', [])
.controller('mainCtrl', function($scope) {

  $scope.allCheckbox = true;

  $scope.toggleCb = function(value) {
    console.log('called with value', value);
    $scope.allCheckbox = value;
  }
});

因此,这个基本的示例设置有几个按钮,单击这些按钮将更改范围变量的布尔值。这是为了说明输入正在考虑设置范围变量。输入也是单击绑定到同一个函数,当使用1.0.8时,它会保持选中复选框。

有没有人需要通过运行最新版本的角度来执行此操作,如果是这样,您如何克服此问题?

0 个答案:

没有答案