[英]angular lazy load module in lazy loaded module
我可以在延迟加载模块中延迟加载模块吗?
我有“发布”路径的这样的模块,但它加载了太多的功能来编辑这个出版物,而用户可能没有权限。 所以我尝试以某种方式优化它,因为我有类似的组件与'编辑/添加'取决于权限。
如果您有某些建议通过权限优化,将很高兴。
更新是的,你可以。 只需在延迟加载的模块中导入其他模块进行路由
FpgTimeComponent
不是将要加载的延迟模块的文件的一部分,因此您不能这样做。 考虑一下,您正在尝试在惰性模块中导入一个组件,模块一无所知,因为它未在该模块中定义,并且未在LazyModule
导入的任何其他模块中定义。 那么从哪里获取组件?
将FpgTimeComponent
添加到SharedModule
并导入SharedModule
中的LazyModule
,或将FpgTimeComponent
移动到LazyModule
。 一旦你做了其中之一,它应该工作。
无论如何,这是一种更好的方法,因为我可以保证,随着您的不断开发,您将与其他组件/其他惰性模块保持同样的错误。 如果您在多个位置使用组件,那么它们应该像Angular最佳实践定义的那样存在于SharedModule
中,并且应该在所有惰性模块中导入SharedModule
。
这是一个例子。
SharedModule:
import { FpgTimeComponent } from './some/path';
@NgModule({
declarations: [
FpgTimeComponent
],
exports: [
FpgTimeComponent
]
})
LazyModule:
import { SharedModule } from '../shared/shared.module';
import { LazyComponent } from './lazy.component';
import { routing } from './lazy.routing';
@NgModule({
imports: [
routing,
SharedModule
],
declarations: [
LazyComponent
]
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.