2017-06-12 22 views
0

ドロップ:角度2ドラッグ&

<script> 
function allowDrop(ev) { 
    ev.preventDefault(); 
} 

function drag(ev) { 
    ev.dataTransfer.setData("text", "teststring"); 
} 

function drop(ev) { 
    ev.preventDefault(); 
    var data = ev.dataTransfer.getData("text"); 
    console.log(data); 
} 
</script> 

私は私のコンポーネントで機能を入れた場合、それは次のエラーを与える:

Uncaught ReferenceError: drag is not defined at HTMLImageElement.ondragstart 
Uncaught ReferenceError: allowDrop is not defined at HTMLDivElement.ondragover 
関数を使用して

要素は、コンポーネントのHTMLである:なぜあなたはindex.htmlファイルに定義されている

<div> ondrop="drop(event)" ondragover="allowDrop(event)"> 
    <img> src="smiley.png" draggable="true" ondragstart="drag(event)"> 
</div> 

<div ondrop="drop(event)" ondragover="allowDrop(event)"> 
</div> 

答えて

0

にこれらの機能を移動し、私はあなたにこのライブラリをお勧めします。私は、HTML5のドラッグを実装し、中にドロップする方法についての解決策を見つけた

+0

ありがとう、私はそれを見ていきます。角度2には実際のドラッグ&ドロップ機能はないようです。また、npmパッケージをインストールするのはちょっと難しいです。しかし、私はそれを試してみる –

0

コンポーネントhtmlの関数を使用している場合は、これらの関数をcomponent.tsファイルに定義する必要があります。あなたがドラッグを使用してfrenquentlyドロップしようとしている場合

ので、コンポーネントクラス

+0

これらはindex.htmlでのみ機能するためです。彼らはコンポーネントで動作しません.ts –

0

index.htmlをするようにコードを移動する必要はありません、ちょうどこの操作を行います。

変更

0あなたのテンプレート(HTML)でそれぞれ

(drop), (dragover), (dragstart), $event 

から

ondrop, ondragover, ondragstart, event