Angular-ui-tree 在拖放时将节点保持在它们的水平

Angular-ui-tree keep nodes to their level on drag and drop

如何防止子节点成为顶级节点,同时防止父节点被放到另一个父节点下。我想允许重新排列子节点和父节点,但只允许它们在当前级别下降。

这可以通过将数据类型属性添加到对应于项目级别的 ui-tree-node 元素来完成。然后通过检查树选项中节点的级别接受回调。

在视图中...

<li ng-repeat="i in items" ui-tree-node data-type="top-level">
</li>

代码中...

        $scope.treeOptions = {
            accept: function(sourceNodeScope, destNodesScope, destIndex) {

                var source = sourceNodeScope.$element.attr('data-type');
                var dest = destNodesScope.$element.attr('data-type');

                if (source == 'child' && dest == 'top-level'){
                    //allow child nodes to be placed under top-level nodes
                    return true;
                }else{
                    return false;
                }
            }
        };