AngularJS - 取消选中复选框

时间:2015-08-19 13:10:45

标签: javascript jquery angularjs checkbox

我尽可能多地使用angularjs - 我正在编辑一些遗留系统而且我无法承受太多变化。所以,基本上,我需要实现一个取消勾选页面中每个复选框的功能。最简单的解决方案 - 不改变现有系统的太多 - 就是使用angular.element。现在我知道,这是一个非常糟糕的解决方案,但我需要让它发挥作用。

目前,它起作用(至少在视觉上),因为每个复选框都未选中,但是,在另一次单击时,复选框不起作用 - 需要按两次,然后再次激活。

这是一个关于事物是如何以及我如何实施部分解决方案的演示:http://jsbin.com/xicubegira/1/edit?html,js,output 用例如下。

  • 点击复选框 - 计数器将增加为1,复选框将被选中
  • 再次点击复选框 - 计数器将增加为2,复选框将取消选中
  • 点击复选框 - 计数器将增加到3,复选框将被选中
  • 按'取消选中我'按钮 - 计数器不会递增,复选框将取消选中(这是正常的)
  • 再次点击复选框 - 选中复选框',但计数器不会递增!

那么,我如何取消选中页面中的所有复选框并仍然保持初始功能?我猜这里的问题是,复选框的范围没有任何变化,因此ng-change不会被解雇。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

你的问题是你没有改变你的模型,因此无法调用ng-change,因为数据没有改变。
你不能对你的模型做一个简单的假设:

$scope.uncheck = function(){        
    $scope.confirmed = false;
};