Как вызвать функцию из корневого компонента в другой компонент внутри

#angular #angular-router

#angular #angular-маршрутизатор

Вопрос:

У меня есть компонент заголовка, который вводится в app.component.html (поскольку я хочу, чтобы это было исправлено). Все остальные компоненты определены в <router outlet> . У каждого компонента есть функция showData() , которая должна вызываться при изменении даты (в компоненте заголовка). Как я могу этого добиться?. Должен ли я использовать конфигурации ActivatedRout?

app.component.html

<app-header></app-header>
<router-outlet></router-outlet>

Комментарии:

1. обычным способом было бы определить сервис и внедрить его в компоненты, которые в них нуждаются.

Ответ №1:

Вы можете использовать это:

 <router-outlet (activate)="onRouterOutletActivate($event)"></router-outlet>

activeComponent: any;

onRouterOutletActivate(component: any) {
    this.activeComponent = component;
}

dateChangedEvent() {
    this.activeComponent.showData();
}