From 1f0ca3072baddfaa30cc76612791bb4f7de8425a Mon Sep 17 00:00:00 2001 From: Alberto Para Date: Mon, 8 May 2017 23:55:06 +0200 Subject: [PATCH] Emit event when file is selected --- src/file-upload/file-select.directive.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/file-upload/file-select.directive.ts b/src/file-upload/file-select.directive.ts index ed84cba..6223cfd 100644 --- a/src/file-upload/file-select.directive.ts +++ b/src/file-upload/file-select.directive.ts @@ -1,4 +1,4 @@ -import { Directive, ElementRef, Input, HostListener } from '@angular/core'; +import { Directive, EventEmitter, ElementRef, Input, HostListener, Output } from '@angular/core'; import { FileUploader } from './file-uploader.class'; @@ -7,6 +7,7 @@ import { FileUploader } from './file-uploader.class'; @Directive({selector: '[ng2FileSelect]'}) export class FileSelectDirective { @Input() public uploader:FileUploader; + @Output() public onFileSelected:EventEmitter = new EventEmitter(); protected element:ElementRef; @@ -26,7 +27,7 @@ export class FileSelectDirective { return !!this.element.nativeElement.attributes.multiple; } - @HostListener('change') + @HostListener('change', ['$event']) public onChange():any { // let files = this.uploader.isHTML5 ? this.element.nativeElement[0].files : this.element.nativeElement[0]; let files = this.element.nativeElement.files; @@ -36,6 +37,8 @@ export class FileSelectDirective { // if(!this.uploader.isHTML5) this.destroy(); this.uploader.addToQueue(files, options, filters); + this.onFileSelected.emit(files); + if (this.isEmptyAfterSelection()) { // todo this.element.nativeElement.value = '';