@NgModule({
declarations: [
AppComponent
, DesktopComponent
],
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule,
HttpModule,
AppRoutingModule,
)
],
providers: [LoginService, { provide: LocationStrategy, useClass: HashLocationStrategy } ,
{
provide: Http,
useFactory: httpFactory,
deps: [XHRBackend, RequestOptions, Router, AppComponent]
}, MasterDataService, PersonService
],
bootstrap: [AppComponent]
})
export class AppModule { }
獲取錯誤錯誤:沒有提供商的AppComponent!當添加deps時:[XHRBackend,RequestOptions,Router,AppComponent]。未提供AppComponent加載錯誤
已經使用本教程https://scotch.io/@kashyapmukkamala/using-http-interceptor-with-angular2來實現攔截器。現在我想從Inteceptor類的AppComponent中調用一個方法。
這是攔截器方法,我只好打電話給AppComponent註銷方法
intercept(observable: Observable<Response>): Observable<Response> {
return observable.catch((err, source) => {
if (err.status == 401) {
localStorage.clear();
this.appComp.logout();
} else {
return Observable.throw(err);
}
});
在應用組件註銷方法
logout() {
console.log(" logging out");
this.authenticated = false;
$('#wrapper').attr("style", "display:none");
this.loginService.logout();
}
我怎樣才能在httpFactory得到AppComponent? – user630209
在AppComponent中導入httpFactory服務並在構造函數中使用該服務(private http:httpFactory){ } – Vignesh
使用httpFactory我需要調用AppComponent logout()。我想你是以其他方式說的。 – user630209