找回密码
 立即注册
相关推荐换一批
  1. YY 0062-1991 X射线管组件固有滤过
  2. YD/T 2288.2-2011 小型化可热插拔模块(SFP)用光组件技术条件 第2部分:同轴连接型光?
  3. YD/T 2288.1-2011 小型化可热插拔模块(SFP)用光组件技术条件 第1部分:同轴连接型光?
  4. YD/T 2286-2011 10Gbit/s EPON 光线路终端/光网络单元(OLT/ONU)的单纤双向光组件
  5. YD/T 2284-2011 终端光组件用光纤带
  6. YY 0009-1990 500mA医用诊断X射线机
  7. YY 0007-1990 200mA医用诊断X射线机
  8. YY 0008-1990 300mA医用诊断x射线机
  9. YY/T 0609-2007 医用诊断X射线管组件通用技术条件
  10. YD/T 2390-2011 通信存储介质(SSD)加密安全技术要求
  11. YD/T 3125.1-2016 通信用增强型 SFP 光收发合一模块(SFP+) 第1部分: 8.5Gbit/s 和 1
  12. YD/T 3126.1-2016 集成可调谐光源模块 第1部分:接口
  13. YD/T 3131-2016 无线基站 BBU 与 RRU 互连用 SFP/SFP+ 光收发合一模块
  14. YD/T 3130-2016 通信用智能小型化热插拔(Smart SFP)光收发合一模块
  15. YDB 025-2008 光通信用半导体激光器组件技术条件 2.5Gb/s 电吸收调制半导体激光器组
  16. TB/T 3370.2-2018 铁路数字移动通信系统( GSM-R)车载通信模块第2部分:试验方法
  17. HG/T 3683.1-2000 工业瓷球——惰性瓷球
  18. YD/T 2156-2010 无线通信用射频传输光模块技术条件
  19. YD/T 1352-2005 千兆比以太网用光收发合一模块技术要求和测试方法
  20. YY/T 0946-2014 心脏除颤器植入式心脏除颤器用DF-1连接器组件尺寸和试验要求
  21. YY/T 0892-2013 医用诊断X射线管组件泄漏辐射测试方法
  22. YY/T 0609-2018 医用诊断X射线管组件通用技术条件
  23. YD/T 2804.4-2015 40Gbit/s/100Gbit/s 强度调制可插拔光收发合一模块 第4部分:软件?
  24. YD/T 2804.1-2015 40Gbit/s/100Gbit/s 强度调制可插拔光收发合一模块 第1部分: 4X10
问题
我想在我的应用程序的几个部分中使用角度组件,包括延迟加载模块中的组件。我不知道如何声明组件以便在惰性模块中使用它。我将向您展示不同文件的一些相关部分:

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