2017-09-12 4 views
0

J'ai une structure div comme ceci:événement ne fonctionne pas dans propogation angular4

<div [ngClass]="showDragDrop == true ? 'show' : 'fade' " 
         (click)="hideWindow($event); $event.stopPropagation()"> 
    <input type="file" (change)="uploadFile($event)" .../> 
</div> 

Fondamentalement la méthode HideWindow() i = false mis showDragDrop ce qui rend mon div pour obtenir cacher.

Mon problème est, j'ai un bouton input = 'file' dans cette div et quand je clique dessus, il déclenche la méthode hideWindow().

J'ai essayé

hideWindow(event) {  
    event.stopPropagation(); 
    this.showDragDrop=false; 
    } 

cette

(event)="doSomething($event); $event.stopPropagation()" 

et ce

(event)="doSomething($event); false" 

mais il ne fonctionne pas

+0

@yurzui, j'étais occupé à faire la démonstration et n » ai pas t voir votre commentaire :( – Vega

+1

@Vega C'est ok – yurzui

Répondre

2

Déplacer event.stopPropagation(); au clic d'entrée()

<input type="file" (click)="removetheClick($event)" ...> 

et

removetheClick(event){ 
    event.stopPropagation(); 
} 

Demo

ou une version plus concise, comme @yurzui suggéré:

<input type="file" (click)="$event.stopPropagation()" ...>