Angularjs ui树中的连接树防拖放

Angularjs ui树中的连接树防拖放,angularjs,tree,angularjs-scope,angular-ui-tree,angular-dragdrop,Angularjs,Tree,Angularjs Scope,Angular Ui Tree,Angular Dragdrop,我正在使用我正在使用: 我希望能够在树的父级上拖动,但不能在子级上拖动 我该怎么做呢。我现在正在使用他们的代码,我可以放在这里 html 谢谢 **我试过的** 这就是我试过的 $scope.tree2Options = { beforeDrop : function (e) { //console.log("sent from tree 2"); var destValue = e.dest.nodesScope.node

我正在使用我正在使用: 我希望能够在树的父级上拖动,但不能在子级上拖动

我该怎么做呢。我现在正在使用他们的代码,我可以放在这里

html

谢谢

**我试过的**

这就是我试过的

    $scope.tree2Options = {
        beforeDrop : function (e) {
            //console.log("sent from tree 2");
            var destValue = e.dest.nodesScope.node ? e.dest.nodesScope.node.value : "pata nehi";
            //console.log(destValue);
        },
        accept: function(sourceNodeScope, destNodesScope, destIndex) {

            //console.log("tree 2 before accepting ");
            console.log(destNodesScope.$element.attr('data-type'));
            return true
        }
    };
然后

 <div class="col-sm-6">
    <h3>Tree 2</h3>
    <div  data-ui-tree="tree2Options" id="tree2-root">
      <ol ui-tree-nodes="" ng-model="tree2" data-type="{{tree2.id}}">
        <li ng-repeat="node in tree2" ui-tree-node ng-include="'nodes_renderer2.html'"></li>
      </ol>
    </div>
  </div>

好的,经过一定的尝试和错误后,我找到了答案

这就是我所做的..我在html中创建了上面建议的数据类型

 <div class="col-sm-6">
    <h3>Tree 2</h3>
    <div  data-ui-tree="tree2Options" id="tree2-root">
      <ol ui-tree-nodes="tree2Nodes" ng-model="tree2"  >
        <li ng-repeat="node in tree2" ui-tree-node ng-include="'nodes_renderer2.html'" data-type="{{node.allowed}}"></li>
      </ol>
    </div>
  </div>
</div>
现在工作

谢谢

 <div class="col-sm-6">
    <h3>Tree 2</h3>
    <div  data-ui-tree="tree2Options" id="tree2-root">
      <ol ui-tree-nodes="" ng-model="tree2" data-type="{{tree2.id}}">
        <li ng-repeat="node in tree2" ui-tree-node ng-include="'nodes_renderer2.html'"></li>
      </ol>
    </div>
  </div>
    accept: function(sourceNodeScope, destNodesScope, destIndex) {

        //console.log("tree 2 before accepting ");
        console.log(destNodesScope.$element.attr('data-type'));
        if(destNodesScope.$element.attr('data-type') != 'undefined'){
            //return true
            console.log("true");
            return true;
        }else{
            console.log("flase");
            return false;
        }

    }
 <div class="col-sm-6">
    <h3>Tree 2</h3>
    <div  data-ui-tree="tree2Options" id="tree2-root">
      <ol ui-tree-nodes="tree2Nodes" ng-model="tree2"  >
        <li ng-repeat="node in tree2" ui-tree-node ng-include="'nodes_renderer2.html'" data-type="{{node.allowed}}"></li>
      </ol>
    </div>
  </div>
</div>
accept: function(sourceNodeScope, destNodesScope, destIndex) {

                var allowed = false;

                angular.forEach(destNodesScope.$element[0].children, function (item) {
                    var attr_allowed = item.attributes['data-type'] && item.attributes['data-type'].value ? item.attributes['data-type'].value : false;
                    if(attr_allowed && attr_allowed=="allowed" ){
                        allowed = true;
                    }
                });

                return allowed;

            },