2017-08-26 35 views
0

私はangular2/4アプリでのangle2-jwtプラグインを使用しています。しかし、環境をセットアップした後、私はそれを一度使うことができます。プロジェクトを再構築した後、以下のエラーが表示されます。angular2-jwt - 関数 'provideAuth'を呼び出し、関数呼び出しはサポートされていません

エラー:

ERROR in Error encountered resolving symbol values statically. Calling function 'provideAuth', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function, resolving symbol AppModule in /home/user/projects/project/src/app/app.module.ts, resolving symbol AppModule in /home/user/projects/project/src/app/app.module.ts

私app.module.ts

@NgModule({ 
imports: [ 
    HttpModule, 
    BrowserModule, 
    BrowserAnimationsModule, 
    AppRoutingModule, 
    BsDropdownModule.forRoot(), 
    TabsModule.forRoot(), 
    ChartsModule, 
    LaddaModule, 
    FormsModule, 
    ToasterModule 
], 
declarations: [ 
    AppComponent, 
    LoginComponent, 
    FullLayoutComponent, 
    AsideToggleDirective, 
    DashboardMenuComponent, 
], 
providers: [ 
    { 
    provide: LocationStrategy, 
    // useFactory: authHttpServiceFactory, 
    // deps: [Http, RequestOptions], 
    useClass: HashLocationStrategy, 
    }, 
    AuthenticationService, 
    AuthGuard, 
    Auth, 
    AuthHttp, 
    provideAuth({ 
    headerName: 'Authorization', 
    headerPrefix: 'bearer', 
    tokenName: 'token', 
    // tokenGetter: (() => localStorage.getItem('token')), 
    globalHeaders: [{'Content-Type': 'application/json'}], 
    noJwtError: true 
}) 
], 
bootstrap: [AppComponent] 
}) 

このエラーを取得した後、私はこのような関数をエクスポート:

export function authHttpServiceFactory(http: Http, options: RequestOptions) { 
return new AuthHttp(new AuthConfig(), http, options); 
} 

は、プロバイダでをインポートエラーは次のようになります。

ERROR Error: Uncaught (in promise): Error: No provider for AuthHttp!

プロバイダにAuthHttpを追加した後、エラーは次のようになります。

ERROR Error: Uncaught (in promise): Error: No provider for AuthConfig!

答えて

1

、私はこのように私のコードを変更した場合、エラーが**不明なエラーになります

providers: [ 
    AuthHttp, 
    { 
     provide: AuthHttp, 
     useFactory: authHttpServiceFactory, 
     deps: [Http, RequestOptions] 
    } 
    ] 


    export function authHttpServiceFactory(http: Http, options: RequestOptions) { 
     return new AuthHttp(new AuthConfig({ 
      headerName: 'Authorization', 
      headerPrefix: 'bearer', 
      tokenName: 'token', 
      // tokenGetter: (() => localStorage.getItem('token')), 
      globalHeaders: [{'Content-Type': 'application/json'}], 
      noJwtError: true 
     }), http, options); 
    } 
+0

として提供します: AuthConfigのすべてのパラメータを解決できません:(?)。** –

+0

設定パラメータは 'AuthConfig'関数に渡されますか? – Rajez

関連する問題