В качестве примера рассмотрим следующий модуль маршрутизации:
const routes: Routes = [
{
path: 'first-admin',
loadChildren: 'app/domain/first/first-admin/first-admin.module#FirstAdminModule'
data: {module: 'first'}
},
{
path: 'second-admin',
loadChildren: 'app/domain/second/second-admin/second-admin.module#SecondAdminModule'
data: {module: 'second'}
}
}
Пользователь запрашивает / first-admin / ** В моем компоненте приложения, где ** - один из дочерних маршрутов.
В компоненте приложения я хочу получить данные, связанные с ActivatedRoute, но, похоже, не могу понять это, возможно, что-то упустило. Я замечаю, что когда я выгружаю снимок в консоль, сначала у него 0 дочерних элементов, а затем 1 дочерний, я думаю, что после загрузки дочерних элементов.
Компонент приложения содержит маршрутизатор-выход. Насколько я понимаю, когда компонент приложения загружает ActivatedRoute и снимок совпадает с первым? Затем, когда он загружает маршрутизируемый дочерний компонент в дочернем маршруте, он создает новый снимок, который будет дочерним по отношению к первому, а текущий ActivatedSnapshot будет отражать текущее состояние.
Вопрос - в своем компоненте приложения я пытался подписаться на данные, наблюдаемые в ActivatedRoute, но в подписке я получаю только нулевой объект данных. В моем компоненте приложения, как я могу получить «первое» имя модуля, которое является частью данных? Кажется, эти данные прикреплены к снимку, созданному дочерним маршрутом.
Добавлены эти три строки в ngOnInit в моем компоненте приложения:
console.log('looking at the activatedroute snapshot',
this.activatedRoute.snapshot);
console.log('looking at created copy of activated route',
{...this.activatedRoute});
console.log('looking at the activated route', this.activatedRoute);
Изображение выпуска здесь: