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'})

Relaterade artiklar