【发布时间】:2019-07-23 04:03:23
【问题描述】:
我想像下面这样得到结果,
预期工作流程图,
这里是默认视图,
场景1:当从左到右点击数字“1”,孩子需要像下面这样高亮,
场景2:考虑场景1的结果,从左到右点击数字“3”,孩子需要像下面这样删除突出显示,因为我们认为3是父/根,
场景3:考虑到默认视图,默认情况下没有选择点击数字“18”时,所有父值都需要高亮,如下所示,
场景 4: 考虑场景 3 的结果,当点击数字“18”时,只有 18 需要删除高亮,如下所示,不需要从右到左的父级取消选择任何值。
注意:单击任何值时,不需要从右到左取消选择父级。在这种情况下,只有点击的值需要移除高亮。
这里是代码:JSFiddle
$scope.setActiveSelectedItem = function() {
return $scope.groupOfCheckboxes[i].RowValues[j].isActive = !$scope.groupOfCheckboxes[i].RowValues[j].isActive;
}
$scope.setActivePrevNext = function(arr, id) {
let keys = Object.keys(arr);
let nextIndex = keys.indexOf(id) +1;
let nextItem = keys[nextIndex];
return $scope.groupOfCheckboxes[i].RowValues[nextIndex].isActive = !$scope.groupOfCheckboxes[i].RowValues[nextIndex].isActive;
}
$scope.setBinary = function (id) {
for(i=0; i<$scope.groupOfCheckboxes.length; i++) {
for(j=0; j<$scope.groupOfCheckboxes[i].RowValues.length; j++) {
if($scope.groupOfCheckboxes[i].RowValues[j].td == id) {
$scope.setActiveSelectedItem();
$scope.setActivePrevNext($scope.groupOfCheckboxes, id);
}
}
}
}
});
【问题讨论】:
-
我无法理解。详细说明行为。
-
更新了帖子。
标签: angularjs javascript-objects