延迟加载模块中的 Angular 延迟加载模块

标签 angular module lazy-loading

我可以在延迟加载模块中延迟加载模块吗?
我有这样的“出版物”路由模块,但它加载了太多用于编辑此出版物的功能,而用户可能对此没有权限。所以我尝试以某种方式优化它,因为我有类似的组件,根据权限进行“编辑/添加”。
如果您有以某种方式通过权限进行优化的建议,我们将很高兴。

已更新 是的你可以。只需在延迟加载模块中导入其他模块用于路由

最佳答案

FpgTimeComponent 不是将要加载的惰性模块文件的一部分,因此您不能那样做。想一想,您正试图在惰性模块中导入一个组件,该模块对此一无所知,因为它没有在该模块中定义,也没有在您在 LazyModule 中导入的任何其他模块中定义。那么它将从哪里获取组件呢?

FpgTimeComponent 添加到 SharedModule 并将 SharedModule 导入到您的 LazyModule 中,或者移动 FpgTimeComponent 到您的 LazyModule。一旦您执行了其中一项操作,它就应该会起作用。

无论如何,这是一种更好的方法,因为我可以保证,随着您继续开发,您将不​​断遇到与其他组件/其他惰性模块相同的错误。如果您在多个地方使用这些组件,那么它们应该以 Angular best practices defines 的形式存在于 SharedModule 中。 ,并且 SharedModule 应该被导入到所有惰性模块中。

这是一个例子。

共享模块:

import { FpgTimeComponent } from './some/path';

@NgModule({
    declarations: [
        FpgTimeComponent
    ],
    exports: [
        FpgTimeComponent
    ]
})

惰性模块:

import { SharedModule } from '../shared/shared.module';

import { LazyComponent }   from './lazy.component';
import { routing } from './lazy.routing';

@NgModule({
    imports: [
        routing,
        SharedModule
    ],
    declarations: [
        LazyComponent
    ]
})

关于延迟加载模块中的 Angular 延迟加载模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47709835/

相关文章:

angular - 如何在导入时没有 "dist"的情况下在 NPM 上发布 TypeScript 模块?

Angular Material 输入字段透明

entity-framework-4 - Entity Framework 调用ToList()时会自动加载FK对象?

java - 如何在 hibernate 中延迟加载多对多集合?

c# - EF Core 返回空关系,直到直接访问

node.js - 如何使用 ngrok 将我的 Angular 4 暴露在互联网上?

css - 从 Angular 组件内更改 body css

haskell - Haskell 中未导入记录的类型类实例

javascript - 从模块导出的变量在 Angular 类的函数内部无法访问

module - ansible - 取消归档 - 找不到输入文件