在我的angular应用程序中,我有一些功能模块:
-
CoreModule(包含用于api调用和模型的服务)
-
MainModule(包含主应用程序的组件)
-
MainDetailModule(包含详细视图函数,延迟加载)
-
主存储模块(包含ngrx/存储定义、操作、减速机等)
主要的单元ts(主模块)
// imports
@NgModule({
imports: [
CommonModule,
FormsModule,
CoreModule,
MainRoutingModule,
TranslateModule.forChild(),
BsDropdownModule.forRoot(),
MainDetailModule,
MainStoreModule
],
declarations: [
// components
],
providers: []
})
export class MainModule { }
主要细节。单元ts(MainDetailModule)
// imports
@NgModule({
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule,
MainDetailRoutingModule,
TranslateModule.forChild(),
MainStoreModule
],
declarations: [
// components
]
})
export class MainDetailModule { }
主要商店。单元ts(主存储模块)
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { StoreModule } from '@ngrx/store';
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
import { metaReducers, rootReducers } from './reducer/root.reducer';
@NgModule({
imports: [
CommonModule,
StoreModule.forRoot(rootReducers, {metaReducers}),
StoreDevtoolsModule.instrument({
maxAge: 10
})
],
declarations: []
})
export class MainStoreModule { }
我的MainModule导入CoreModule、MainStoreModule和MainDetailModule。MainDetailModule将通过单击detail链接延迟加载。
在整个主应用程序中,我的主要功能运行良好。但如果我导航到MainDetailModule,MainStoreModule将被重新初始化,因此它将保持为空。我知道ngrx/store可以与延迟加载的模块一起工作,我知道如何工作。我的问题是,如何让我的MainStoreModule与我的延迟加载模块一起工作?我是否应该在MainStoreModule中实现类似的函数,如forRoot()和forChild()?