Вы можете использовать @Output
для отправки события в контейнер, затем в компоненте контейнера вы можете выбрать, что делать при получении события.
HomeComponent
export class HomeComponent {
@Output() openDialog = new EventEmitter();
constructor(public dialog: MatDialog) {}
open(): void {
this.openDialog.emit();
}
}
Шаблон HomeComponent
Hai!! welcome to our application..
<div style="padding:30px;">
<button mat-raised-button (click)="open()" color="primary">ADD</button>
</div>
Шаблон BikeComponent
<app-home (openDialog)="openDialog($event)"></app-home>
BikeComponent TS
export class BikeComponent implements OnInit {
constructor() { }
ngOnInit() {
}
openDialog($event: any) {
// open desired bike component
}
}
Шаблон CarComponent
<app-home (openDialog)="openDialog($event)"></app-home>
CarComponent ts
export class CarComponent implements OnInit {
constructor() { }
ngOnInit() {
}
openDialog($event: any) {
// open desired car component
}
}
Посмотрите на официальный документ: https://angular.io/guide/component-interaction