找回密码
 立即注册
相关推荐换一批
  1. GB 24819-2009 普通照明用LED模块 安全要求
  2. GB/T 24366-2009 通信用光电探测器组件技术要求
  3. YD/T 1813-2008 通信用光纤放大器 泵浦激光器组件 第1部分:980nm泵浦激光器组件
  4. YD/T 1812.3-2008 10Gbit/s同轴连接型光发射组件(TOSA)和同轴连接型光接收组件(ROSA
  5. YY/T 0063-2007 医用电气设备医用诊断X射线管组件 焦点特性
  6. YD/T 1111.2-2001 SDH光发送/光接收模块技术要求-2.488320Gb/S光发送模块
  7. YD/T 1111.1-2001 SDH光发送/光接收模块技术要求-2.488320Gb/S光接收模块
  8. YD/T 1199.1-2002 SDH光发送/光接收模块技术要求——SDH 10Gb/s光接收模块
  9. YD/T 1763.3-2008 TD-SCDMA/WCDMA数字蜂窝移动通信网 通用用户识别模块(USIM)与终端
  10. YD/T 1763.2-2008 TD-SCDMA/WCDMA数字蜂窝移动通信网 通用用户识别模块(USIM)与终端
  11. YY/T 0062-2004 X射线管组件固有滤过的测定
  12. SJ/T 10135-1991 TEC1系列温差电致冷组件总规范
  13. SJ/T 9167.8-1993 软线组件与电源软线
  14. SJ 20517-1995 TEC1-03108温差电致冷组件规范
  15. SJ 20141-1992 TES1-01212TT温差电致冷组件规范
  16. SJ 20140-1992 军用温差电致冷组件失效率试验方法
  17. SJ 20139-1992 军用温差电致冷组件z大致冷功率的试验方法
  18. SJ 20099-1992 4灯整体安装双刀双掷和4刀双掷照明按钮开关及指示器组件详细规范
  19. SJ 3273-1990 高压件和组件的安全要求
  20. SJ/T 2928-1995 软线组件
  21. SJ 20527-1995 微波组件总规范
  22. JB/T 5111.4-1991 平锻机凹模模块 结构与尺寸
  23. JB/T 5110.5-1992 螺旋压力机锻模 矩形模块用模座
  24. JB/T 5110.4-1992 螺旋压力机锻模 圆形模块用模座
问题
我想在我的应用程序的几个部分中使用角度组件,包括延迟加载模块中的组件。我不知道如何声明组件以便在惰性模块中使用它。我将向您展示不同文件的一些相关部分:

应用程序模块.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 循环中?