Angular 2 Drag&删除界面

时间:2016-10-26 18:10:20

标签: angular drag-and-drop

我一直在寻找能够拖动HTML元素并将它们放置在屏幕上任何位置的包或模块。

我找到了2个包裹:

  1. https://github.com/valor-software/ng2-dragula

  2. https://github.com/akserg/ng2-dnd

  3. 两者都缺少我的2个需求:能够获得屏幕上的当前位置(X& Y),并且能够在屏幕上的任何位置拖放元素。

    我知道有HTML Drag and Drop API

    我真正需要的只是Angular 2的Android drag and drop

    任何人都可以指出任何可以使用Angular 2的模块,以便制作Drag&拖放界面能够随处拖放物品并保存位置吗?

2 个答案:

答案 0 :(得分:0)

A plnkr sample。这是基本的,并留下了很多布局问题,但演示了你想要的东西,请注意Draggable和Movable是分开的。

基本用法是:

      <div class="note" draggable movable #m1="movable" (movement)="m1.move($event)">movable note a </div>

我看到你问过rxjs,this post是最好的起点。

=============================================== ==============

dragula很棒并且工作顺利,但正如你所说,不适合你的需要。

DND api是一个更精细的元素交互,可以将一个元素拖到另一个元素上实现交互(想想大多数现代Web应用程序中的文件上传)。它支持接受和拒绝拖动(放置目标)并使用拖动的元素传递数据。

一个可拖动的指令很容易在angular2中实现,并且需要大约30行代码。我实现了一个,如果你想我可以在一个要点中分享代码的轮廓。

主要问题是如何在屏幕上定位项目。为此,您需要使用绝对位置并可能破坏您的布局结构。这是您在应用中可以接受的内容吗?我说这个的原因是你对你的html结构变得非常敏感。如果元素位于相对/绝对定位元素的层次结构内,则事情可能无法正常工作

答案 1 :(得分:0)

即使那个帖子有点旧,但是,对于那些正在为这种情况寻找解决方案的人来说,经过大量搜索后我发现了一个很好的可拖动实现,构建完全原生的角度4+,无法访问jquery,所以它符合不直接与DOM交互的Angular方法。

https://xieziyu.github.io/angular2-draggable

易于安装和使用,像魅力一样工作,它还提供边界,交换和对齐网格功能。

尝试角度6并在第一次尝试时工作。