From the W3school drag and drop tutorial, you can use angular event-bindinds instead of the built-in bindings in html. All events starting with on are omitted, and you add parentheses around it (for example, ondrag becomes (drag) ). I wrote an example from w3school as angular2 plunkr
HTML:
<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">
CSS
#div1 { width: 350px; height: 70px; padding: 10px; border: 1px solid #aaaaaa; }
c
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)); }
source share