Javascript Angularjs显示和隐藏复选框上的按钮复选框

Javascript Angularjs显示和隐藏复选框上的按钮复选框,javascript,angularjs,ngtable,Javascript,Angularjs,Ngtable,我正在使用创建我的表。我在桌子顶部有一个最初禁用的按钮。如果选中任何复选框,我希望启用此按钮。当复选框的非复选框被选中时,按钮将再次禁用。我如何才能准确地做到这一点 我的示例代码: HTML <button class="btn btn-default pull-right" disabled >Remove Selected</button> <table ng-table="tableParams" show-filter="true" class="

我正在使用创建我的表。我在桌子顶部有一个最初禁用的按钮。如果选中任何复选框,我希望启用此按钮。当复选框的非复选框被选中时,按钮将再次禁用。我如何才能准确地做到这一点

我的示例代码:

HTML

<button class="btn btn-default pull-right" disabled >Remove Selected</button>

    <table ng-table="tableParams" show-filter="true" class="table ng-table-responsive">
        <tr ng-repeat="user in $data" ng-class="{ 'emphasis': user.money > 500 }">
            <td width="30" style="text-align: left" header="'ng-table/headers/checkbox.html'">
                <input type="checkbox" ng-model="checkboxes.items[user.id]" />
            </td>
            <td data-title="'Name'" filter="{ 'name': 'select' }" filter-data="names($column)">
                {{user.name}}
            </td>
            <td data-title="'Money'" sortable="'money'">
                {{user.money}}
            </td>
        </tr>
    </table>
<script type="text/ng-template" id="ng-table/headers/checkbox.html">
                <input type="checkbox" ng-model="checkboxes.checked" id="select_all" name="filter-checkbox" value="" />
              </script>

提前谢谢你。你需要一种叫做手表的东西。您需要定义它来观察复选框数组,并根据它找到的内容将变量设置为true或false。每次运行摘要时,手表都会更新。

您实际上可以让分配给get的ng类处于启用/禁用状态,也可以通过ng单击来执行其功能,如果该类处于禁用状态,则返回false/您的复选框计数=total或根据您的逻辑返回0

希望能有帮助

<button class="btn btn-default pull-right" ng-class="allClass()" ng-click="allClass('click')">Remove Selected</button>


$scope.allClass = function(mode){
    if(mode==='click'){
        if(!$scope.checkboxes.checked){
            return; //if class is disabled dont do anything
        }else{
            if (!$scope.users) {
                return;
            }
            var checked = 0, unchecked = 0,
            var total = $scope.users.length;
            angular.forEach($scope.users, function(item) {
                checked   +=  ($scope.checkboxes.items[item.id]) || 0;
                unchecked += (!$scope.checkboxes.items[item.id]) || 0;
            });
            if(cheked>0){
               //do your thing
            }
        }

    }else{
        //this is for the ng-class attr call
        return $scope.checkboxes.checked ? '' : 'disabled';
        //add some css to your file to look like disable button
    }
}
Remove Selected
$scope.allClass=函数(模式){
如果(模式=='click'){
如果(!$scope.checkbox.checked){
return;//如果类被禁用,则不执行任何操作
}否则{
if(!$scope.users){
返回;
}
var checked=0,unchecked=0,
var total=$scope.users.length;
angular.forEach($scope.users,函数(项){
选中+=($scope.checkbox.items[item.id])|0;
未选中+=(!$scope.checkbox.items[item.id])|0;
});
如果(勾选>0){
//做你的事
}
}
}否则{
//这是用于ng类attr调用的
返回$scope.checkbox.checked?“”:“已禁用”;
//向文件中添加一些css,使其看起来像“禁用”按钮
}
}
以下是一个示例:


将复选框ng checked属性设置为$scope变量,以便我们可以将“checked”状态绑定到模型。然后,我们可以在按钮的ng disabled属性上使用一个函数,该函数将根据当前是否选中任何复选框返回布尔值。如果选中了任何复选框,则该按钮将被启用。

在示例中,已有两个监视复选框。。这是否可能与它们整合?怎么做?你能更新checkbox.html吗?对不起,我错过了!现在更新
<button class="btn btn-default pull-right" ng-class="allClass()" ng-click="allClass('click')">Remove Selected</button>


$scope.allClass = function(mode){
    if(mode==='click'){
        if(!$scope.checkboxes.checked){
            return; //if class is disabled dont do anything
        }else{
            if (!$scope.users) {
                return;
            }
            var checked = 0, unchecked = 0,
            var total = $scope.users.length;
            angular.forEach($scope.users, function(item) {
                checked   +=  ($scope.checkboxes.items[item.id]) || 0;
                unchecked += (!$scope.checkboxes.items[item.id]) || 0;
            });
            if(cheked>0){
               //do your thing
            }
        }

    }else{
        //this is for the ng-class attr call
        return $scope.checkboxes.checked ? '' : 'disabled';
        //add some css to your file to look like disable button
    }
}