2016-02-01 12 views
12

Я создаю компонент загрузки в угловом 2, и я наткнулся на проблему. (drop) Событие не работает. Это моя реализациясобытие капли не работает угловое 2

<div 
class="input-upload" 
*ngIf="status != 'finished'" 
(drop)="onDrop($event)" 
(dragenter)="dragenter()" 
(dragleave)="dragleave()" 
(dragover)="dragover()" 
[ngClass]="{'drag-over': dragOver | async}" 
> 

onDrop(event: any) { 
event.preventDefault(); 
event.stopPropagation(); 
console.log(event) 
} 

Я что-то не так? Я даже помещаю несуществующую функцию в событие (drop) и угловой не дает ошибки.

ответ

17

AFAIR Вам необходимо позвонить event.preventDefault() в dragOver(event), чтобы сообщить обозревателю, что текущий элемент, зависящий от времени, является допустимым целевым объектом.

Смотрите также https://developer.mozilla.org/en-US/docs/Web/Events/drop

2

добавить это на DragOver и dragend

возвращение ложным;

@He уже делает то, что вы сказали

+1

Он делает это в 'onDrop', но не в' DragOver() ' –

+1

Понял. Извините, не видел этого. При этом ему все равно придется возвращать false –

+0

[event.preventDefault() vs return false] (http://stackoverflow.com/questions/1357118/event-preventdefault-vs-return-false) Стоит прочитать. – Jared