javascript - 按钮选择和取消选择所有不起作用的复选框

标签 javascript jquery angularjs

我的选择 ng-grid 中所有复选框的按钮工作正常。但是,我还想实现使用相同的按钮取消选择。

这是原始代码

app.directive('selectAll',function(){
  return{

    restrict: 'A',
    link: function(scope,element,attr){
     element.click(function() {
     $('.ngViewport.ng-scope input[type="checkbox"]').prop('checked', true);
   });
  }
 };
});

在进行了一些谷歌搜索并基于其他示例后我的尝试:

  app.directive('selectAll',function(){
return{

  restrict: 'A',
  link: function(scope,element,attr){

 element.click(function() {
    if (this.checked) {
     $('.ngViewport.ng-scope input[type="checkbox"]').prop('checked', true);
    }
    else{
    $('.ngViewport.ng-scope input[type="checkbox"]').prop('checked', false);
    }
 });
 }
};
});

由于某种原因,Angular 不喜欢 this.checked??不知道从这里去哪里。

笨蛋

http://plnkr.co/edit/zy653RrqHmBiRJ7xDHlV?p=preview

最佳答案

您正在检查按钮的 Checked 属性。

按钮元素没有这样的属性。

我会向按钮元素添加一个类。并在此基础上设置复选框的选中属性。这是使用 jQuery。

但是使用 Angular 你应该避免将 jQuery 作为最后的手段。相反,应该使用模型来保存当前状态的值。

element.click(function() {
     var $this = $(this),
         isChecked = false;

     if ($this.hasClass('checked')) {
        $this.removeClass('checked');
     } else {
        $this.addClass('checked');
        isChecked = true;
     }
     $('.ngViewport.ng-scope input[type="checkbox"]').prop('checked', isChecked);
});

<强> Check Edited plunker

关于javascript - 按钮选择和取消选择所有不起作用的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665851/

相关文章:

javascript - 如何使 javascript 文件可以访问 ruby​​ 变量?

javascript - 返回一个 16 位 UUID,其中在第 7、11、15 和 19 个位置我需要添加一个 hiphen

javascript - 在可见的 HTML 表格行上交替背景颜色的最快方法

angularjs - 状态对象的自定义数据

javascript - 这是使用 html 快照和 google fetch 的预期/想要的结果吗?搜索引擎优化/SPA

javascript - grunt (minimatch/glob) 文件夹排除

javascript - a4j :support is used 时焦点消失

javascript - 如何在 ASP.NET 中创建登录页面的重定向?

javascript - 用户单击组合框后重新加载页面(有一些规则)

javascript - 在 get 请求中使用 $interval