Как отправить событие маршрутизатора - PullRequest
0 голосов
/ 06 июля 2018

У меня есть 2 модуля, один из которых sidenav, где я могу выбрать меню и хочу показать компонент в content module, где есть router-outlet. Я хочу знать, каков наилучший способ сделать это? У меня есть router event, где я могу просто subscribe в модуле контента? Потому что я буду использовать компоненты от service до emit и subscribe event in router-outlet, но я думаю, что это не лучшая практика. Примерно так:

Service:
private emit = EventEmitter<string>
emit(component: string): void {
 this.emit.emit(component)
}

и в компоненте я просто подписываюсь на service emit и использую router.navigate, чтобы показать компонент в router-outlet. Надеюсь, кто-нибудь может мне помочь =). Спасибо

1 Ответ

0 голосов
/ 06 июля 2018

Если я вас правильно понял:

Sidenav

@Output() navigate: EventEmitter<string[]> = new EventEmitter();

emit (route: string[]) {
  this.navigate.emit(route);
}

Родитель sidenav

<app-sidenav (navigate)="router.navigate($event)"></app-sidenav>

Не забудьте сделать маршрутизатор общедоступным в родительском компоненте:

constructor(public router: Router) {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...