Мне бы хотелось иметь простой способ получить доступ ко всем данным о маршрутах родителей на текущем дочернем маршруте, похоже, что это будет обычная задача, если я пропущу что-то встроенное в angular?
Пример
const routes: Routes = [
{
path: '',
component: WrapperComponent,
data: {
prop1: 'abc',
},
children: [
{
path: '',
component: HomeComponent,
data: {
prop2: '1',
prop3: 'Some other data',
},
},
{
path: 'welcome',
data: {
prop1: 'efg',
prop2: 'my cool prop',
},
},
];
Моей целью было бы какое-то свойство активированного маршрута, которое возвращает объединенные данные маршрута, поэтому если по адресу:
/ - данные маршрута будут
{
prop1: 'abc',
prop2: '1',
prop3: 'Some other data',
}
/ welcome - данные маршрута будут
{
prop1: 'efg',
prop2: 'my cool prop',
}
Я реализовал это с помощью следующего кода, но держу пари, что кто-то лучше с наблюдаемыми может написать это лучше.
this.router.events // private router: Router,
.pipe(
filter((event) => event instanceof NavigationEnd),
map(() => this.activatedRoute),
map((route) => {
let data: any = {};
while (route.firstChild) {
data = { ...data, ...route.firstChild.snapshot.data };
route = route.firstChild;
}
return data;
}),
).subscribe((e) => console.log(e));
эта функциональность уже существует в угловых?