找回密码
 立即注册
相关推荐换一批
  1. YD/T 3291-2017 数据中心预制模块总体技术要求
  2. NB/T 20413-2017 压水堆核电厂结构模块安装及验收技术规程
  3. YD/T 3129.2-2017 通信用集成光发射组件 第2部分:10x10Gbit/s 强度调制
  4. YD/T 3071-2016 接入网技术要求
  5. YD/T 3056-2016 25Gbit/s 电吸收调制激光器(EML)组件
  6. YD/T 2968-2015 光通信用 40Gbit/s PIN-TIA 光接收组件
  7. YD/T 2904.1-2015 集成可调谐激光器组件 第1部分:蝶形封装组件
  8. YD/T 2906-2015 通信用 CSFP 光收发合一模块
  9. YD/T 1688.3-2017 代替 YD/T 1688.3-2011 xPON 光收发合一模块技术条件 第3部分:用?
  10. YD/T 2759-2014 10Gbit/s 单纤双向光收发合一模块
  11. YD/T 2005-2017 代替 YD/T 2005-2009 用于光纤通道的光收发模块技术条件
  12. YD/T 1688.7-2017 xPON 光收发合一模块技术条件 第7部分:内置 MAC 功能的光网络单元
  13. NB/T 42104.4-2016 地面用晶体硅光伏组件环境适应性测试要求第4部分:高原气候条件
  14. NB/T 32034-2016 光伏发电站现场组件检测规程
  15. GB/T 38643-2020 信息技术 大数据 分析系统功能测试要求
  16. NB/T 42131-2017 光伏组件环境试验要求通则
  17. GB/T 38621-2020 发光二极管模块热特性瞬态测试方法
  18. YD/T 986-2018 代替 YD/T 986-1998 155Mb/s 和 622Mb/s 光收发合一模块
  19. GB/T 38625-2020 信息安全技术 密码模块安全检测要求
  20. HG/T 5111-2016 柱式中空纤维膜组件
  21. SN/T 3325.2-2013 进出口照明器具检验规程第2部分:普通照明用LED模块
  22. HG/T 3683.1-2014 代替 HG/T 3683.1-2000 工业瓷球 惰性瓷球
  23. GB/T 39392-2020 家用电器专用智能功率模块技术规范
  24. GB/T 39320-2020 电子商务 元模型 基本模块
问题
我想在我的应用程序的几个部分中使用角度组件,包括延迟加载模块中的组件。我不知道如何声明组件以便在惰性模块中使用它。我将向您展示不同文件的一些相关部分:

应用程序模块.ts
  1. import { FpgTimeComponent } from './fpgTime/fpg-time.component';


  2. @NgModule({
  3.   declarations: [
  4.       AppComponent,
  5.       (...)
  6.       FpgTimeComponent

  7. 应用程序路由.ts

  8. const appRoutes: Routes = [

  9.     { path: '', redirectTo: 'customer', pathMatch: 'full' },
  10.     {
  11.         path: 'customer',
  12.         component: CustomerComponent
  13.     },
  14.     {
  15.         path: 'lazy',
  16.         loadChildren: 'app/lazy/lazy.module#LazyModule'
  17.     }
  18. ];

  19. 惰性模块.ts

  20. import { FpgTimeComponent } from '../fpgTime/fpg-time.component';

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

  23. @NgModule({
  24.     imports: [routing],
  25.     declarations: [
  26.         LazyComponent,
  27.         FpgTimeComponent
  28.     ]
  29. })
复制代码

应用程序加载,但是当我去延迟路由时,它会引发以下错误:

我不会在任何地方导入 LazyModule,因为它是延迟加载的。那么,如何声明组件 FpgTimeComponent 以便能够在惰性模块(以及非惰性组件)中使用它?

先感谢您,

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

将 FpgTimeComponent 添加到 SharedModule 并在 SharedModule 中导入 LazyModule ,或者将 FpgTimeComponent 移动到 LazyModule 中。一旦你做了其中之一,它应该可以工作。

前者可能是更好的方法,因为我可以保证,随着您继续开发,您将继续遇到与其他组件/其他惰性模块相同的错误。如果你在多个地方使用组件,它们应该按照角度最佳实践的定义在 SharedModule 中,并且应该在所有惰性模块中导入 SharedModule。

这是一个例子。

共享模块:
  1. import { FpgTimeComponent } from './some/path';

  2. @NgModule({
  3.     declarations: [
  4.         FpgTimeComponent
  5.     ],
  6.     exports: [
  7.         FpgTimeComponent
  8.     ]
  9. })

  10. 酶模块:

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

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

  14. @NgModule({
  15.     imports: [
  16.         routing,
  17.         SharedModule
  18.     ],
  19.     declarations: [
  20.         LazyComponent
  21.     ]
  22. })
复制代码






上一篇:如何禁用角度数据表中数据的初始排序?
下一篇:有没有办法使用“点调用”?在 foo 循环中?