我创建了两棵树,当我将一个节点从一棵树移动到另一棵树时,我想知道新旧树的名字。我在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
价值。感谢
答案 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');
// ...
}
};