2017-09-19 7 views
0

角度4でng2-file-uploadを使用してitem.upload()の後にコールバックしようとしましたが、 '予期しないトークン'としてエラーが発生しています。コンストラクタ、メソッド、アクセサ、またはプロパティが予期され、 '宣言またはステートメントが期待されました'予期しないトークン。 Typescrciptでコンストラクタ、メソッド、アクセサまたはプロパティが予期されました

以下はmyコンポーネントとapp.moduleコードです。

は、いずれかの私の時間を節約

アップロードコンポーネント

   import { Component } from '@angular/core'; 
       import * as FileSaver from 'file-saver'; 
       import * as XLSX from 'xlsx'; 
       import { FileUploader 
       ,FileItem,ParsedResponseHeaders,FileLikeObject} from 'ng2-file-upload'; 

       @Component ({ 
        selector: 'my-app', 
        templateUrl:'./excelUpload.html' 

       }) 
       export class ExcelUploadComponent { 

        private uploader:FileUploader = new FileUploader({url:'http://localhost:5000/upload'}); 

        this.uploader.onSuccessItem = (item:FileItem, response:string, status:number, headers:ParsedResponseHeaders) => 
        { console.log("onSuccessItem " + status, response, item); 
         if(response) 
         { //parse your response. 
         } 
        } 
       } 

app.module.tsだけクラスのメンバーがクラス内に直接でなければなりません

  import { BrowserModule } from '@angular/platform-browser'; 
     import { NgModule } from '@angular/core'; 
     import { FormsModule,ReactiveFormsModule} from '@angular/forms'; 
     import { HttpModule } from '@angular/http'; 
     import { AppComponent } from './app.component'; 
     import { RouterModule, Routes } from '@angular/router'; 
     import {ExcelUploadComponent} from './ExcelUpload/ExcelUpload.Component'; 
     import { Component } from '@angular/core'; 
     import { FileSelectDirective, FileDropDirective } from 'ng2-file-upload'; 
     import { FileUploadModule } from 'ng2-file-upload/ng2-file-upload'; 



     @NgModule({ 
      declarations:[ AppComponent, 
      ExcelUploadComponent 
      ,FileDropDirective, FileSelectDirective ], 
      imports: [ BrowserModule , FormsModule,HttpModule], 
      providers: [], 
      bootstrap: [LayoutComponent] 

     }) 
     export class AppModule { } 
+0

動き 'this.uploader.onSuccessItem = ..' constructor''へ –

答えて

1

を行います。クラスの初期化の一部として実行する必要のある任意のコードは、コンストラクタにする必要があります:

// ... 
export class ExcelUploadComponent { 

    private uploader: FileUploader = new FileUploader({ url: 'http://localhost:5000/upload' }); 
    constuctor() { 
     this.uploader.onSuccessItem = (item: FileItem, response: string, status: number, headers: ParsedResponseHeaders) => { 
      console.log("onSuccessItem " + status, response, item); 
      if (response) { //parse your response. 
      } 
     } 
    } 

} 
+0

おかげで、この解決私のエラー – user3301440

+0

しかし、私が使用している場合コンストラクタで上記のメソッドを呼び出し、正常にアップロードした後にトリガしない関数をコールバックします。 – user3301440

+0

https://stackoverflow.com/questions/43516846/how-to-return-response-with-ng2-file-upload – user3301440

関連する問題