首页 文章

延迟加载模块中的角度延迟加载模块

提问于
浏览
3

我可以在延迟加载模块中延迟加载模块吗?
我有'publications'路由的这样的模块,但它加载了太多的功能来编辑这个出版物,而用户可能没有这个权限 . 所以我尝试以某种方式优化它,因为我有'edit/add'的类似组件,具体取决于权限 .
如果您有某些建议通过权限优化,将很高兴 .

更新是的,你可以 . 只需在延迟加载的模块中导入其他模块进行路由

1 回答

  • 0

    FpgTimeComponent 不是将要加载的延迟模块的文件的一部分,因此您可以在该模块中定义't do that. Think about it, you are trying to import a component in the lazy module that the module knows nothing about since it isn' t,并且未在 LazyModule 中导入的任何其他模块中定义它 . 那么从哪里获取组件?

    FpgTimeComponent 添加到 SharedModule 并导入 LazyModule 中的 SharedModule ,或将 FpgTimeComponent 移动到 LazyModule . 一旦你做了其中之一,它应该工作 .

    无论如何,这是一种更好的方法,因为我可以保证,随着您的不断开发,您将与其他组件/其他惰性模块保持同样的错误 . 如果您在多个位置使用组件,那么它们应该位于 SharedModuleAngular best practices defines,并且 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
        ]
    })
    

相关问题