Я пытаюсь выяснить, есть ли более оптимизированный способ совместного использования одного и того же резольвера между двумя дочерними маршрутами для детей. Ниже приведен пример того, как маршруты связаны с преобразователями.Угловой 2: дочерние маршруты Sibling, разделяющие один и тот же резольвер
import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { NgModule } from '@angular/core';
export const routes = [{
path: '',
component: parentComponent,
canActivate: [AuthGuard],
resolve: {
someData: someDataResolver
},
children: [
{ path: '', redirectTo: '0', pathMatch: 'full' },
{ path: '0',
component: someComponent1,
resolve: {
someData1: someData1Resolver,
someData2: someData2Resolver,
}
},
{ path: '2',
component: someComponent2,
resolve: {
someData2: someData2Resolver
}
}
... a bunch more children routes/components with resolvers
]
}]
В настоящее время я повторяю призывы резонаторов для каждого маршрута для детей, что, я считаю, не является оптимальным. Кто-нибудь знает, есть ли лучший способ поделиться данными из общего дочернего резонатора дочернего узла? Я подумал о том, чтобы установить данные из дублирующего преобразователя в общую службу, а затем другой дочерний маршрут для доступа к данным из службы (вместо того, чтобы делать другой вызов api в преобразователе). Есть ли еще более оптимальные решения?
Как компонент доступа к ребенку разрешенные данные из родительского компонента? – Gambo
Когда дочерний маршрут вводит «route: ActivatedRoute», он должен иметь доступ к нему с помощью 'this.route.parent.data' или' this.route.parent.snapshot.data' –
Это работает, спасибо! Каково ваше предложение перезагрузить данные, например, пользователь отредактировал объект, перейдя к подробному представлению? путь: ': идентификатор', компонент: CustomerDetailComponent, распознаватель: {клиент: ...}, детей: [ {путь: 'редактировать', компонент: CustomerEditComponent ....} ] данные не перезагружается, поскольку пользователи остаются в родительском маршруте. – Gambo