¿Por qué obtuve un objeto vacío de los parámetros de ActivatedRoute y cómo solucionarlo?
routeId$ = this.route.params.pipe( tap((params) => console.log(params)), // <--- {} pluck('id') ); Definí el :id en la ruta de los niños:
RouterModule.forChild([ { path: '', component: OrdersComponent, children: [{ path: ':id', component: OrderComponent }], <-- here. }, ]), Como quiero usar fachada, lo declaré en los providers para tener una instancia de fachada para el componente:
... providers: [FooFacade], }) export class OrderComponent { constructor(private facade: FooFacade) {} doWork() { console.log('doWork'); this.facade.doWork(); } FooFacade está utilizando el servicio.
Trato de encontrar por qué obtuve un objeto vacío y no la identificación, así que descubrí que funciona:
routeIdWorks$ = this.route.firstChild.firstChild.firstChild.params.pipe( tap((params) => console.log(params)), pluck('id') ); Pero no es la solución ideal porque tengo que especificar mucho firstChild . también una función que agrega firstChild feel wearg.
Entonces, ¿hay una manera de hacer que esto funcione?
routeId$ = this.route.params.pipe( tap((params) => console.log(params)), pluck('id') );También definí esas opciones en la raíz del enrutador:
{ paramsInheritanceStrategy: 'always', <---?? initialNavigation: 'enabledBlocking', enableTracing: false, }