web-dev-qa-db-fra.com

comment déclencher un événement cliquez sur type d'entrée = "fichier" par fonction dans angulaire 2?

J'ai ce code dans le fichier HTML.

<input #fileInput type="file"  />

demo.ts

import {
  Component,
  Inject,
  OnInit,
  ElementRef,
  Renderer,
  ViewQuery
} from '@angular/core';
@Component({
  selector: 'demo',
  templateUrl: 'client/dev/demo/demo.html',
})
export class DemoComponent implements OnInit{

@ViewQuery('fileInput') fileInput:ElementRef;

constructor(){}

triggerFile(){
   // do something 
   // trigger input type="file" here
   this.fileInput.nativeElement.click();
}

ngOnInit() {


}

}

Je vois cette réponse: comment déclencher un événement de clic du fichier d'entrée à partir d'un clic de bouton dans l'angle 2? Bien sur ça a fonctionné. Mais je veux déclencher input type = "fichier" dans la fonction triggerFile () et j'utilise les fonctions ViewQuery et nativeElement.click (). mais il console cette erreur "Impossible de lire la propriété 'nativeElement' de non définie". J'utilise angular2 Rc 1. merci pour l'aide.

8
Trần Dương

Passez la référence fileInput à triggerFile() et faites-la fileInput.click() à la place:

<input #fileInput type="file"  />
<button type="button" (click)="triggerFile(fileInput)">trigger</button>
triggerFile(fileInput:Element) {
  // do something
  fileInput.click();
}
10
Günter Zöchbauer

Pas besoin d'écrire de code dans le contrôleur

<input #fileInput type="file"  />
<button type="button" (click)="fileInput.click()">trigger</button>