【发布时间】:2019-09-22 18:49:07
【问题描述】:
我在 html 端有一个嵌套组件,如下所示:
<main>
<ng-content *ngFor="let item in data">
<car *ngIf="item.type=='car'"></car>
<plane *ngIf="item.type=='car'"></plane>
</ng-content>
</main>
我的car 和plane 组件实现了一个基本的cehicle 类。
export abstract class BaseVehicleComponent{
onVehicleCreated(){
console.log("on vehicle created.")
}
}
创建车辆时,我想在main 组件中填充一个事件。
@Component({
selector: 'main',
})
export class MainComponent{
@Output() vehicleCreated = new EventEmitter<void>();
}
hml 更新如下:
<main (vehicleCreated)="onVehicleCreated($event)">
<ng-content *ngFor="let item in data">
<car *ngIf="item.type=='car'"></car>
<plane *ngIf="item.type=='car'"></plane>
</ng-content>
</main>
但基本方法不会触发。
【问题讨论】:
-
你在哪里打电话
this.vehicleCreated.emit()? -
如果您在 StackBlitz 上创建一个示例会很有帮助。
-
其实无处可去,哪里可以调啊。主要部件和车辆部件是分开的,可能是不同的模块。所以我想做一个松耦合的通信。
-
@barteloma - 看看我的回答。