2017-08-26 18 views
0

Ich benutze angular2-jwt Plugin für die Authentifizierung in meiner angular2/4 App. aber nach dem Einrichten der Umgebung kann ich es für einmal verwenden. Nach dem Neuaufbau des Projekts erscheint der folgende Fehler.angular2-jwt - Aufruf der Funktion 'provideAuth', Funktionsaufrufe werden nicht unterstützt

Fehler:

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

mein 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] 
}) 

nach diesen Fehler exportieren i die Funktion wie folgt aus:

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

und importiert in Anbieter aber der Fehler wird sein:

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

nach der Zugabe von AuthHttp in Anbieter wird der Fehler sein:

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

Antwort

1

stellen so

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

wenn ich so meinen Code ändern, wird der Fehler ** nicht erfasste Fehler sein: Kann nicht alle Parameter für AuthConfig auflösen: (?). ** –

+0

Konfigurationsparameter werden an 'AuthConfig' Funktion übergeben? – Rajez

Verwandte Themen