typescript - Angular 16 - Binda komponentingång till ruttparameter från föräldrarutt
Föreställ dig en komponent (some.component.ts) i Angular 16 som tar värdet för sin foo-egenskap från activeRoute - men från föräldrarouten. Se exemplet nedan:
@Input() foo!: string;
constructor(private activeRoute: ActivatedRoute) {
this.foo = this.activeRoute.parent?.snapshot.params['foo'];
}
Jag skulle vilja använda Angular 16:s input-binding för routningsparametrar här. Det fungerar i andra fall men jag är inte säker på hur man får det att fungera när parametern faktiskt kommer från en överordnad route.
Rutterna ser ut så här:
{
path: 'bar/:foo',
component: IrrelevantComponent,
children: [
{
path: 'some',
component: SomeComponent,
},
],
},
Är det ens möjligt att uppnå med den nya ruttparametrarsbindningen? Om så, hur?
Svar #1
@skinks kommentar länkar till dokumentationen som visar hur man gör detta: https://angular.io/guide/router#getting-route-information
Om du vill använda föräldrakomponentens ruttinformation behöver du ställa in alternativet router paramsInheritanceStrategy:
withRouterConfig({paramsInheritanceStrategy: 'always'})