在angular-ivh-treeview中选择父节点时,仅捕获叶节点

时间:2017-04-30 19:30:51

标签: javascript angularjs treeview

我设法用树视图实现了我想要的几乎所有东西但是无论何时父节点被选中都无法捕获叶子节点,所以我只需要在我的数组上添加叶子节点对象在任何类型的选择中选择的节点,如下所示:

案例1:选择叶节点

案例2:选择一组叶节点的直接父节点

案例3:选择最后一个左叶节点 等......等等。

<div ivh-treeview="demo.stuff"
     ivh-treeview-expand-to-depth="-1"
     ivh-treeview-on-cb-change="demo.updateSelection()">
</div>

$scope.demo.updateSelection = function() {
    $scope.selectedNodes.length = 0;
        ivhTreeviewBfs($scope.demo.stuff, function(node) {
          if(node.selected) {
              $scope.selectedNodes.push(node);
          }
    });  
}

使用上面这些代码,只要父节点被选中,整个层次结构就会被添加到我选择的节点数组中。

1 个答案:

答案 0 :(得分:0)

ivhTreeviewBfs不会直接告诉您某个节点是否为叶子,但您可以检查,例如:

if(node.selected && !(node.children || []).length) {
     /* it's a selected leaf! */
}

另外,这是一个非常小的事情,但请记住,如果您不想对ivhTreeviewOptionsProviderselected等属性进行硬编码,则可以使用children