gpt4 book ai didi

angularjs - 如何根据angular.js中的子复选框选择父复选框?

转载 作者:行者123 更新时间:2023-12-04 18:47:23 24 4
gpt4 key购买 nike

我最近一直在玩 Angular.js,并决定在选中父复选框后检查所有复选框,我已经使用 ng-model 完成了这项工作。和 ng-checked指令。

    <div ng-app>
<div ng-controller="Ctrl">
<input type="checkbox" ng-model="parent"/> Select All<br/>
<input type="checkbox" ng-model="child_1" ng-checked="parent" ng-click="getAllSelected()"/> First<br/>
<input type="checkbox" ng-model="child_2" ng-checked="parent" ng-click="getAllSelected()"/> Second<br/>
<input type="checkbox" ng-model="child_3" ng-checked="parent" ng-click="getAllSelected()"/> Three<br/>
<input type="checkbox" ng-model="child_4" ng-checked="parent" ng-click="getAllSelected()"/> Four<br/>
<input type="checkbox" ng-model="child_5" ng-checked="parent" ng-click="getAllSelected()"/> Five<br/>
</div>
</div>

现在,我尝试在选中所有子复选框后选择所有父复选框,但面临一些问题。
    function Ctrl($scope) {
$scope.getAllSelected = function () {
var chkChild = document.querySelectorAll('input[ng-model^="child_"]').length;
var chkChildChecked = document.querySelectorAll('input[ng-model^="child_"]:checked').length;
if (chkChild === chkChildChecked) $scope.parent= true;
else $scope.parent= false;
}
}

演示: http://jsfiddle.net/codef0rmer/QekpX/

我们可以让上面的代码更健壮吗?

最佳答案

复选框中的 ng-checked 属性接受一个表达式。因此,您可以给出带有和/或条件的表达式,如下所述,以根据表达式对其进行检查。

<input type="checkbox" ng-checked="child_1 && child_2 && child_3 && child_4 && child_5" ng-model="parent"/> Select All<br/>

当单击每个子复选框时,您不必编写单独的函数来进行计算。

Here is example in jsfiddle

关于angularjs - 如何根据angular.js中的子复选框选择父复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12141824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com