找回密码
 立即注册
相关推荐换一批
  1. YD/T 986-2018 155Mbs和622Mbs光收发合一模块
  2. GB∕T 39753-2021 光伏组件回收再利用通用技术要求
  3. GB∕T 28170.2-2021 信息技术 计算机图形和图像处理 可扩展三维组件(X3D) 第2部分:
  4. HG∕T 5111-2016 柱式中空纤维膜组件
  5. YD/T 1688.4-2011 xPON光收发合一模块技术条件 第4部分:用于10G EPON光线路终端光/?
  6. GB/T 27904-2011 火焰引燃家具和组件的燃烧性能试验方法
  7. YD/T 1998.1-2009 接入网用单纤双向双端口光组件技术条件 第1部份:用于基于以太网?
  8. YD/T 1998.2-2009 接入网用单纤双向双端口光组件技术条件 第2部份:用于吉比特无源?
  9. SJ 51510.1-1995 1类可扭软波导组件详细规范
  10. SJ 20668.1-1998 微电路模块ML3010A型对数放大器详细规范
  11. SJ 20527.7-2003 微波组件WFZ1006型锁相介质振荡器详细规范
  12. SJ 20527.5-2002 微波组件WFK170018型单刀七掷开关详细规范
  13. GB/T 24825-2009 LED模块用直流或交流电子控制装置 性能要求
  14. GB/T 24824-2009 普通照明用LED模块测试方法
  15. GB 24819-2009 普通照明用LED模块 安全要求
  16. GB/T 24366-2009 通信用光电探测器组件技术要求
  17. YD/T 1813-2008 通信用光纤放大器 泵浦激光器组件 第1部分:980nm泵浦激光器组件
  18. YD/T 1812.3-2008 10Gbit/s同轴连接型光发射组件(TOSA)和同轴连接型光接收组件(ROSA
  19. YY/T 0063-2007 医用电气设备医用诊断X射线管组件 焦点特性
  20. YD/T 1111.2-2001 SDH光发送/光接收模块技术要求-2.488320Gb/S光发送模块
  21. YD/T 1111.1-2001 SDH光发送/光接收模块技术要求-2.488320Gb/S光接收模块
  22. YD/T 1199.1-2002 SDH光发送/光接收模块技术要求——SDH 10Gb/s光接收模块
  23. YD/T 1763.3-2008 TD-SCDMA/WCDMA数字蜂窝移动通信网 通用用户识别模块(USIM)与终端
  24. YD/T 1763.2-2008 TD-SCDMA/WCDMA数字蜂窝移动通信网 通用用户识别模块(USIM)与终端
问题
我想在我的应用程序的几个部分中使用角度组件,包括延迟加载模块中的组件。我不知道如何声明组件以便在惰性模块中使用它。我将向您展示不同文件的一些相关部分:

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