我正在尝试创建一个像这样的树状复选框:
- o Master Tree -
- o 树 1
- o 子树 1
- o 子树 2
- o 树 2
- o 子树 1
- o 子树 2
- o 树 1
其中每个“o”是一个复选框,功能包括:
- 当一个复选框被选中时,它的所有子复选框都会被选中。
- 当一个复选框被点击取消选中时,它的所有子复选框都将被取消选中
- 当一个复选框被点击取消选中时,它的所有父复选框都将被取消选中,因为它不会是“全选”
我尝试过的:
所有树中的 ng-model 和 ng-changed - 尽管这并不理想。
全选
child
孙子1
孙子 2function Ctrl($scope) { $scope.billing_is_shipping = true; $scope.master = true; $scope.child = true; $scope.grandchlid = true; $scope.checked = function (type) { switch (type) { case 'master': $scope.master = !$scope.master; if ($scope.master) { $scope.child = true; $scope.grandchild = true; } else { $scope.child = false; $scope.grandchild = false; } $scope.apply(); break; case 'child': $scope.child = !$scope.child; if ($scope.child) { $scope.grandchild = true; } else { $scope.grandchild = false; } $scope.apply(); break; case 'grandchild1': $scope.grandchild1 = !$scope.grandchild1; if(!$scope.grandchild1 || !$scope.grandchild2){ $scope.child = false; $scope.master = false; } break; } console.log($scope.billing_is_shipping) }
仅 ng-model 或 ng-changed
我已经尝试过 $scope.apply() 和没有,但我只能让第一次点击工作,然后一切都放弃了。
任何方法或帮助将不胜感激,并提前致谢。
最佳答案
关于javascript - AngularJS 中的树状复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25438792/