我有一个Angular 9应用程序,我注意到我每次从一条路线导航到另一条路线时都会重新初始化/重新初始化我的服务。经过长时间的调试和试用后,我决定登录AppModule的构造函数,并注意到它会针对每条路线进行调用。注意:我使用provideIn:'root'注入服务。我也尝试过在AppModule provider属性中声明服务,而不是使用ProvidedIn,但是结果仍然相同。
有什么想法吗?
这是我的AppModule:
@NgModule({
declarations: [
AppComponent,
...
],
imports: [
BrowserModule,
StoreModule.forRoot({user : userReducer}),
AppRoutingModule,
BrowserAnimationsModule,
FormsModule,
AngularFireModule.initializeApp(environment.firebase),
AngularFirestoreModule,
AngularFireStorageModule,
ReactiveFormsModule,
MatAutocompleteModule,
NgbModule.forRoot(),
FontAwesomeModule,
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {
constructor(){
console.log('MODULE INIT');
}
}
这是我的路由模块:
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
您描述的行为使我认为您的应用在每次导航时都会重新加载自身的新状态。可能在以下情况下发生:
href
属性时。)>在任何情况下,您的代码看起来都是正确的,并且您似乎已经考虑到使用单例服务的后果,因此问题很可能并非来自提供麻烦的服务。