【发布时间】:2019-03-05 09:47:03
【问题描述】:
我正在尝试通过以下方式获得结果,请任何专家输入以实现此目的!
预期工作流程图,
这里是默认视图,
场景1:当从左到右点击数字“1”,孩子需要像下面这样高亮,
场景2:考虑场景1的结果,从左到右点击数字“3”,孩子需要像下面这样删除突出显示,因为我们认为3是父/根,
场景3:考虑到默认视图,默认情况下没有选择点击数字“18”时,所有父值都需要高亮,如下所示,
场景 4: 考虑场景 3 的结果,当点击数字“18”时,只有 18 需要删除高亮,如下所示,不需要从右到左的父级取消选择任何值。
注意:任何值都不需要从右到左的父级取消选择。
这里是代码:JSFiddle
$scope.setActivePrevNext = function (arr) {
let c;
arr.RowValues.forEach(e => {
e.isActive = !e.isActive; c = e.isActive;
});
index = $scope.groupOfCheckboxes.findIndex(x => x.Row == arr.Row);
childrenIndex = index + 1;
if ($scope.groupOfCheckboxes[childrenIndex] !== undefined) {
$scope.groupOfCheckboxes[childrenIndex].RowValues.forEach(e => {
e.isActive = c;
})
};
}
$scope.setBinary = function (id) {
$scope.groupOfCheckboxes.forEach(e => {
e.RowValues.forEach(item => {
if (item.td == id) $scope.setActivePrevNext(e);
})
});
}
【问题讨论】:
标签: javascript angularjs binary-tree