Angularjs 角度ui树:删除位置+;在指令中捕获丢弃的事件

Angularjs 角度ui树:删除位置+;在指令中捕获丢弃的事件,angularjs,twitter-bootstrap-3,angular-directive,angular-ui-tree,Angularjs,Twitter Bootstrap 3,Angular Directive,Angular Ui Tree,我正在使用在我的应用程序中构建项目树。 我正在使用它的拖放功能,我需要知道何时何地(在什么元素上)发生拖放 例如,我拖动item1,并将其放置在面板上。我希望面板显示项目名称。(每个项目都有一个name属性)。面板只是一个简单的div,里面有文本 我在文档中看到,我可以访问控制器中的“丢弃”事件。但是我不明白如何根据拖放的项目更改面板内容。您可以这样访问“拖放”项目 $scope.elOptions = { dropped: function(e) { console.l

我正在使用在我的应用程序中构建项目树。 我正在使用它的拖放功能,我需要知道何时何地(在什么元素上)发生拖放

例如,我拖动item1,并将其放置在面板上。我希望面板显示项目名称。(每个项目都有一个name属性)。面板只是一个简单的div,里面有文本

我在文档中看到,我可以访问控制器中的“丢弃”事件。但是我不明白如何根据拖放的项目更改面板内容。

您可以这样访问“拖放”项目

$scope.elOptions = {
    dropped: function(e) {
        console.log (e.source.nodeScope.$modelValue);     
    }
};
与$callbacks相同(类型:Object)

$callbacks是angular ui树的一个非常重要的属性。当一些 特殊事件触发时,调用$callbacks中的函数。这个 回调可以通过指令传递

您可以在treeOptions集合中定义事件

     myAppModule.controller('MyController', function($scope) {
     // here you define the events in a treeOptions collection
      $scope.treeOptions = {
        accept: function(sourceNodeScope, destNodesScope, destIndex) {
          return true;
        },
        dropped: function(e) {
          console.log (e.source.nodeScope.$modelValue);     
        }
      };

    });
然后在树div中添加上面在控制器中定义的callbacks=“treeOptions”

<div ui-tree callbacks="treeOptions">
  <ol ui-tree-nodes ng-model="nodes">
    <li ng-repeat="node in nodes" ui-tree-node>{{node.title}}</li>
  </ol>
</div>
您可以从这里访问新的父级

e.source.nodeScope.$parentNodeScope.$modelValue
e.dest.nodesScope.$parent.$modelValue

嘿,伙计们,我刚找到它

$scope.treeOptions = {
            dropped: function (event) {
             //To catch the event after dragged

             //Value of model which is moving
             event.source.nodeScope.$modelValue;

             //Source Parent from where we are moving model
             event.source.nodeScope.$parentNodeScope.$modelValue;

             //Destination Parent to where we are moving model
             //Edit: Use "nodesScope" instead of "nodeScope" for dest object 
             event.dest.nodesScope.$nodeScope.$modelValue;
         }};

希望它也适用于您:)

关于本期项目,您可以找到其他有用的信息:

例如,在我的例子中,我从一棵树拖动到另一棵树,在这种情况下,必须在源树选项中覆盖删除的函数(而不是像我最初认为的那样覆盖目标树)


相关问题中的讨论帮助我发现了这一点。

我不知道这是否与版本有关,我使用的是Angular UI Tree v2.1.5。你的解决方案只有在我把这个改成:抱歉迟到了。我用的是一个很好用的great@IbrahimKais你能得到子元素的位置吗?我需要对树进行排序,因此我需要得到子节点在其他节点之间的位置。找不到获取此@DaCh的方法:您的版本是什么?如何排序?如何在丢弃的回调中获取当前拖动的元素值