Angular 2延迟加载模块在导航路线时多次初始化?

Angular 2延迟加载模块在导航路线时多次初始化?,angular,lazy-loading,angular2-routing,angular2-services,Angular,Lazy Loading,Angular2 Routing,Angular2 Services,使用RC5 我配置了延迟加载的路由: {path: STATE.PROFILE, loadChildren: 'app/profile/profile.module' }, 其中指向此模块: @NgModule({ imports: [CommonModule, FormsModule, routing], declarations: [SelectProfileComponent, ConfirmProfileComponent], providers: [ProfileCach

使用RC5

我配置了延迟加载的路由:

{path: STATE.PROFILE, loadChildren: 'app/profile/profile.module' },
其中指向此模块:

@NgModule({
  imports: [CommonModule, FormsModule, routing],
  declarations: [SelectProfileComponent, ConfirmProfileComponent],
  providers: [ProfileCacheService]
})
export default class ProfileModule { }
。。。这些路线呢

const routes: Routes = [
  { path: '', component: SelectProfileComponent, canActivate: [ProfileGuard] },
  { path: STATE.CONFIRM, component: ConfirmProfileComponent, canActivate: [ProfileGuard] },
];
在选择配置文件组件中,有一个按钮导航到其同级路由“状态。通过根AppModule中声明的“共享”服务确认”。角度路由器有助于此共享服务中的导航:

return this.router.navigateByUrl(url);
问题是ProfileCacheService中存储了状态(在延迟加载模块中声明),但在我导航到“确认”路由后,状态被清除。发生这种情况的原因是,当尝试导航到同一延迟加载模块内的路由时,模块正在重新初始化,这反过来又会重新初始化CachService,因为它是模块作用域

在根模块上声明ProfileCacheService可以解决这个问题,但它无法达到延迟加载的目的,因为此服务只在该模块中使用


有人遇到过同样的问题吗?

我也遇到过同样的问题,看起来它已在master中修复,并将成为rc6的一部分: