Angular - передача данных на хост-компонент при маршрутизации на лениво загруженный модуль - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть модуль со следующей маршрутизацией:

{
    path: '',
    component: PagesComponent,
    children: [
      {
        data: { test: 'snoop' },
        path: 'dashboard',
        loadChildren: './modules/dashboard/dashboard.module#DashboardModule',
      },
      {
        data: { test: 'dogg' },
        path: 'admin', 
        loadChildren: './modules/admin/admin.module#AdminModule' 
      }
    ]
  }

Что я хотел бы сделать, это передать некоторые данные компоненту PagesComponent, в зависимости от того, какой загруженный модуль был загружен.

Итак, в моем PagesComponent я бы хотел что-то вроде этого:

constructor(private route: ActivatedRoute) {
    this.route.data.subscribe(data => {
      console.log(data);
    });
  }

И тогда параметр data будет содержать данные, определенные в корне.

Я знаю, что могу легко получить данные из маршрутов внутри самого лениво загруженного компонента модуля, но возможно ли получить эти данные в компоненте хоста, то есть PagesComponent?

Справочная информацияЯ хотел бы сделать это, чтобы отображать различные данные в меню в зависимости от того, на какой странице вы находитесь в данный момент.

1 Ответ

0 голосов
/ 26 февраля 2019

Разница между данными с отложенной загрузкой и простыми маршрутами заключается в том, что вам нужно смотреть глубже.

constructor(route: ActivatedRoute) {
  route.url.subscribe(() => {
    console.log(route.snapshot.firstChild.firstChild.data);
   });
}
...