2017-03-23 9 views
2

角度2のonDropイベントからファイルを取得する方法は?

onDragStart(event, data: any) { 
    event.dataTransfer.setData('data', data); 
} 
onDrop(event, data: any) { 
    let dataTransfer = event.dataTransfer.getData('data'); 
    event.preventDefault(); 
} 
allowDrop(event) { 
    event.preventDefault(); 
} 


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

に...このためのあらゆるソリューションを私はこのような試みたが、私はそれにドロップしたときにonDrop方法は、画像ファイルを返さないのですか?あなたはドラッグイベントのためHostlistenerデコレータを使用して試みることができる

+0

なぜイベントのデフォルトの動作を防止するのですか? –

+0

あなたが防ぐことができない場合、ドラッグアンドドロップは動作しません... – Vladimir

答えて

0

、あなたはは、OnDblClickイベント上で実行preventDefault()stopPropagation()メソッドを持っている場合にのみ、それは例えばhere in ng2-file-upload

+0

'Hostlistener'がどのように役立つでしょうか? – Vladimir

+0

'@HostListener( 'drop'、['$ event'])'を追加しようとしましたが、まだ空のイベントが返されています... – Vladimir

2

イベントonDropイベント火災を実装見ることができます。

HTML

<div 
    (drop)="onDrop($event)" 
    (dragover)="onDragOver($event)" 
> 
    Drop target 
</div> 

DropComponent.ts

export class DropComponent { 
    onDrop(event) { 
     event.preventDefault(); 
    } 
    onDragOver(event) { 
     event.stopPropagation(); 
     event.preventDefault(); 
    } 
} 

UPDATE

これは、HTML上に落下しながら、ブラウザが起こってから何かを防ぐため、デフォルトで必要とされますエレムent。詳細は MDN - Defining a valid drop zone

+0

なぜそうなのか説明できれば素晴らしいでしょう。 – PrimosK

関連する問題