我们有一个具有此层次结构的项目。
app/
├── app.component.html
├── app.component.ts
├── app.module.ts <--moduleA and moduleB is imported here
├── app-routing.module.ts
├── moduleA/
│ ├── moduleA-routing.module.ts
│ ├── moduleA.module.spec.ts
│ ├── moduleA.module.ts
│ ├── moduleA.component.ts
│ └── moduleA.component.html
├── moduleB/
│ ├── moduleB-routing.module.ts
│ ├── moduleB.module.ts <-- moduleC is imported here
│ ├── moduleB.component.module.ts
│ ├── moduleB.component.html
│ ├── moduleB.component.ts
| ├── moduleC/
│ │ ├── moduleC-routing.module.ts
│ │ ├── moduleC.module.ts
│ │ ├── moduleC.component.module.ts
│ │ ├── moduleC.component.html --> Need to use moduleA component here
│ │ └── moduleC.component.ts
moduleC
是moduleB
的子模块。我们已经在moduleA
中导入了AppModule
。我们是否可以访问moduleA
中moduleC
的组件,而不必再次在moduleA
内导入moduleC
。 换句话说,是否有必要在子模块中再次导入AppModule
中已经导入的模块以使用其组件?。
当我尝试不再次在moduleC中导入moduleA时,它会抛出
“模板解析错误:{{selector name}}不是已知元素”
但是,如果它是导入的,则可以正常工作。
答案 0 :(得分:0)
不要在app.module.ts文件中导入moduleA和moduleB。
在moduleB.module.ts中导入moduleA
并在moduleC.module.ts中导入moduleB
最后将moduleC导入app.module.ts
现在,您还可以访问moduleB和moduleC中的moduleA组件。
答案 1 :(得分:0)
您应该使用import:[ModuleA]甚至是export:[ModuleA],以便可以从外部模块访问它