在角度拖动事件


angular.module('myApp').directive('dragDrop',  function() {
        return {
           link:function(scope,element){
              element.on('dragover', function(event) { 
                    event.preventDefault();
              });
              element.on('drop', function(event) { 
                    event.preventDefault();
                    var data=event.originalEvent.dataTransfer.getData("Text");                          
         event.target.parentNode.appendChild(document.getElementById(data));
              });
              element.on('drag', function(event) { 
                  event.originalEvent.dataTransfer.setData("Text",event.target.id);
                  console.log(event.originalEvent.dataTransfer.getData("Text"));
                  scope.$apply();
              });
           }
        };
    });

当我调整不使用angularJS时,上面的代码可以很好地工作。当我出于某些完全无法解释的原因创建上述指令时 console.log(event.originalEvent.dataTransfer.getData("Text")); 输出什么都没有为什么?我还提供了HTML代码(两个列表之间的拖放功能):

<div class="col-xs-6" drag-drop>
                                            <div class="header">Available Life Events</div>
                                            <ul class="permission-levels">
                                                <li style="margin:20px;" ng-attr-id="{{'ALE'+$index}}" draggable="true"                  
                                                ng-repeat="event in Events track by $index">
                                                    {{event.name}}
                                                </li>
                                            </ul>
                                        </div>

<div class="col-xs-6" drag-drop>
                                            <div class="header">Life Events Applied</div>
                                            <ul class="permission-levels">
                                                <li style="margin:20px;" ng-attr-id="{{'LEA'+$index}}" draggable="true"  
                                                ng-repeat="event in events track by $index">
                                                    {{event.name}}
                                                </li>
                                            </ul>
                                        </div>

而不是drag事件使用dragstart。请检查https://plnkr.co/edit/bjnawqsqeeguc5njmqdz?p=preview

如果您使用的是Angular-Dragdrop,则有一个确切的问题的打开问题(标题为" event.datatransfer是未定义")。我自己没有尝试过,但显然没有正确修复。

相关内容

  • 没有找到相关文章

最新更新