Angular 2-7 :(下面的资料):我有带有组件a和b的SectionA模块。 SectionA的对等项是具有组件ba和bb的SectionB模块。
SectionA和SectionB的父级都称为all-sections.module.ts。
在app.module中,我仅引用“ all-sections模块”,并且可以毫不费力地显示A节和B节各个组件的工作情况(如下所示)。
组件“ a”可以在其html中使用“ b”,但我无法从SectionB中引用它的堂兄“ bb”。问题:如何从“ a”显示“ bb”。
SectionA模块
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { AComponent} from './a/a.component';
import { BComponent } from './b/b.component';
@NgModule({
declarations: [
AComponent,
BComponent
],
imports: [
CommonModule
],
exports: [
AComponent,
BComponent
]
})
export class SectionAModule { }
SectionB模块(非常明显)
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { BaComponent } from './ba/ba.component';
import { BbComponent } from './bb/bb.component';
@NgModule({
declarations: [
BaComponent,
BbComponent
],
imports: [
CommonModule
],
exports: [
BaComponent,
BbComponent
]
})
export class SectionBModule { }
所有部分模块
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import {SectionAModule} from '../SectionA/SectionA.module';
import {SectionBModule} from '../SectionB/SectionB.module';
@NgModule({
declarations: [],
imports: [
CommonModule,
SectionAModule,
SectionBModule
],
exports: [
SectionAModule,
SectionBModule
]
})
export class AllSectionsModule { }
app.module仅导入AllSectionsModule,然后app.component.html如下所示:
<div>
<app-a></app-a>
<app-b></app-b>
<app-ba></app-ba>
<app-bb></app-bb>
</div>
运行应用程序按预期方式工作:
但是我找不到从“ a”引用“ bb”的方法,例如:
希望当我刚叫“ a”时得到类似的信息。这是'a.html':
<p>
a works! and
<app-b></app-b> from within Section A component a WORKS
BUT:
<app-bb></app-bb>
This won't work no matter how I try to reference it.
</p>
预先感谢! 卡盘
答案 0 :(得分:1)
是的,您可以从“ A节”到“ B节”中引用组件。在SectionB.module.ts中声明组件时。
如要在声明数组中所做的那样,在导出数组中添加要共享的组件“ bbComponent”。
例如:出口:['bbComponent']。
现在在SectionA.module.ts中导入 SectionB 模块。
之后,您将可以使用该组件。那不是一个好习惯。
相反,请为您希望在不同模块中使用的组件创建一个共享模块。这样可以避免循环引用问题。
希望有帮助。
答案 1 :(得分:0)
如果要使用另一个模块中的组件,则需要从包含该组件的模块中导出该组件,然后将此模块导入到您的模块中:您可以找到更多信息here