Mobile 在TouchStart上启动本机事件开始拖动-Angular2

Mobile 在TouchStart上启动本机事件开始拖动-Angular2,mobile,touch,angular,drag,Mobile,Touch,Angular,Drag,我需要在移动设备上添加拖放事件,touchstart事件按预期启动,但没有明显效果 那么,是否有可能在touchstart上启动本机拖放事件,或者您是否知道一个示例,例如使用@HostListener,它显示了如何处理此问题 this.htmlElement.ontouchstart = (touchEvent: TouchEvent) => { // here I check if user intend starting a drag&drop or if there

我需要在移动设备上添加
拖放
事件,
touchstart
事件按预期启动,但没有明显效果

那么,是否有可能在
touchstart
上启动本机拖放事件,或者您是否知道一个示例,例如使用
@HostListener
,它显示了如何处理此问题

this.htmlElement.ontouchstart = (touchEvent: TouchEvent) => {
     // here I check if user intend starting a drag&drop or if there are some other touch behaviours

    if (dragging) {
        // What to do here to start drag and drop
    }
}

提前感谢您的回复

角度支撑拖动,因此您可以像这样使用它们:

<div (drop)="onDrop($event, dropData)" (dragover)="allowDrop($event)"> Drop here</div>
<div (dragstart)="onDragStart($event, dragData)">drag me </div>

对于与触摸相关的事件,您应该使用类似Angular2的内容。

从W3school教程中,您可以使用angular事件绑定,而不是html中的内置绑定。以上的
开头的所有事件都将被忽略,并在其周围添加括号(例如,
ondrag
变为
(拖动)
)。 我在w3school写了一个例子作为例子

html:

ts:


@d_z90,你希望看到什么?你需要拖动拖动我并打开你的控制台。我刚测试过again@d_z90它起作用了你也可以试试这个
(dragleave)
(drag)
(dragend)
(dragenter)
(dragexit)
(dragover)
(dragstart)
(drop)
<div id="div1" (drop)="drop($event)" (dragover)="allowDrop($event)"></div>
<br>
<img id="drag1" src="http://placekitten.com.s3.amazonaws.com/homepage-samples/408/287.jpg" 
draggable="true" (dragstart)="drag($event)" width="336" height="69">
#div1 {
    width: 350px;
    height: 70px;
    padding: 10px;
    border: 1px solid #aaaaaa;
}
  allowDrop(ev) {
    ev.preventDefault();

  }

  drag(ev) {
    ev.dataTransfer.setData("text", ev.target.id);

  }

  drop(ev) {
    ev.preventDefault();
    var data = ev.dataTransfer.getData("text");
    ev.target.appendChild(document.getElementById(data));
  }