【问题标题】:AngularJS - unchecking checkboxAngularJS - 取消选中复选框
【发布时间】:2015-08-19 21:21:30
【问题描述】:

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

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

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

  • 单击复选框 - 计数器将递增到 1,复选框将变为选中状态
  • 再次点击复选框 - 计数器将增加到 2,复选框将变为未选中
  • 点击复选框 - 计数器将增加到 3,复选框将变为选中状态
  • 按“取消选中我”按钮 - 计数器不会增加,复选框将变为未选中状态(没关系)
  • 再次单击复选框 - 复选框变为“选中”,但计数器未递增!

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

感谢您的帮助!

【问题讨论】:

    标签: javascript jquery angularjs checkbox


    【解决方案1】:

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

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

    【讨论】:

    • 是的,成功了。甚至不必使用angular.element,完美!
    猜你喜欢
    • 2015-02-12
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 2018-01-29
    • 2013-11-26
    • 2014-11-19
    • 2019-01-14
    • 1970-01-01
    相关资源
    最近更新 更多