Angular UI Tree:获取节点的新旧父节点

时间:2016-02-04 10:36:04

标签: angularjs angular-ui-tree

我创建了两棵树,当我将一个节点从一棵树移动到另一棵树时,我想知道新旧树的名字。我在data-tree-name="unsorted"中添加了ui-tree,但我不知道如何访问它。这是我的代码:

        <div ui-tree="treeOptions" data-tree-name="unsorted">
            <ol ui-tree-nodes="" ng-model="skill.unsorted">
                <li ng-repeat="sk in skill.unsorted" ui-tree-node>
                    <div ui-tree-handle>
                        @{{ sk.name }}
                    </div>
                </li>
            </ol>
        </div>

         <div ui-tree="treeOptions" data-tree-name="sorted">
            <ol ui-tree-nodes="" ng-model="category">
                <li ng-repeat="cat in category" ui-tree-node>
                    <div ui-tree-handle>
                        @{{ cat.name }}
                    </div>
                    <ol ui-tree-nodes="" ng-model="cat.skills">
                        <li ng-repeat="sk in cat.skills" ui-tree-node>
                            <div ui-tree-handle>
                                @{{ sk.name }}
                            </div>
                        </li>
                    </ol>
                </li>
            </ol>
        </div>
----------------------------------------------------
$scope.treeOptions = {
        accept: function(sourceNodeScope, destNodesScope, destIndex) {
            return true;
        },
        dropped: function(e) {
            console.log (e.source.nodeScope);
        }
    };

那我怎样才能获得data-tree-name价值。感谢

1 个答案:

答案 0 :(得分:2)

请参阅官方文档中的dropped事件文档:

<强>下降(事件)

如果一个节点在删除后移动它的位置,将调用nodeDropped回调。

<强>参数:

  
      
  • event:事件参数,它是一个对象。

         
        
    • source:源对象

           
          
      • nodeScope:被拖动的源节点的范围。

      •   
      • nodesScope:源节点开始拖动时父节点的范围。

      •   
      • index:开始拖动时的位置。

      •   
      • cloneModel:如果data-clone-enabled为true,则保留要插入的克隆节点的模型,这可以在之前编辑   删除而不影响源节点。

      •   
    •   
    • dest:目标对象

           
          
      • nodesScope:您刚刚放入的ui-tree-nodes的范围。

      •   
      • index:您投入的位置。

      •   
    •   
    • elements:拖动相对元素。

           
          
      • placeholder:占位符元素。

      •   
      • dragging:拖动元素。

      •   
    •   
    • pos:位置对象。

    •   
  •   

以下是一个例子:

$scope.treeOptions = {
    dropped: function(event) {
        var sourceNode = event.source.nodeScope;
        var destNodes = event.dest.nodesScope;
        var sortBefore = event.source.index + 1;
        var sortAfter = event.dest.index + 1;
        var dataType = destNodes.$element.attr('data-type');

        // ...
    }
};