【发布时间】:2017-12-21 16:35:58
【问题描述】:
我正在寻找一种方法将另一个延迟加载的模块加载到一个延迟加载的模块旁边,因为一个模块需要另一个模块的延迟加载存储......
我应该重新考虑我的架构还是有办法在 Angular 中做到这一点?
【问题讨论】:
-
这很简单。您从引导模块和另一个模块以完全相同的方式延迟加载模块。您究竟遇到了哪些问题?
标签: angular angular2-routing angular4-router
我正在寻找一种方法将另一个延迟加载的模块加载到一个延迟加载的模块旁边,因为一个模块需要另一个模块的延迟加载存储......
我应该重新考虑我的架构还是有办法在 Angular 中做到这一点?
【问题讨论】:
标签: angular angular2-routing angular4-router
您可以将一个延迟加载的模块导入和导出到另一个模块。
这将导致多次声明第二个存在的任何路由。
在这种情况下,只需将共享代码拆分为第三个模块,该模块将被导入到两个延迟加载的模块中。
【讨论】:
我以这个工作解决方案结束:因为我的需要是访问由其他模块延迟加载的ngrx存储,我只是直接导入了主应用程序根存储中需要的reducer,我还导入了根模块应用程序中需要的效果
edit : 有一种聪明的方法是使用守卫来检查状态的存在,如果没有,守卫会启动一个加载事物的存储操作
例子:
checkStore(): Observable<boolean> {
return this.store.select(myselector).pipe(
tap(loaded => {
if (!loaded) {
this.store.dispatch(new store.loadThings());
}
}),
filter(loaded => loaded),
take(1)
);
}
感谢 Todd Motto 的提示
【讨论】: