angular - Hur injicerar man en förfaderkomponent av samma typ?
Angulairs beroendeinjektion gör att du kan injicera vilken förfaderkomponent som helst, på följande sätt:
@Component({ ... })
export class MyComponent {
constructor(_parent: AppComponent) {}
}
Men i mitt fall vill jag injicera en förfaderkomponent som är en annan instans av samma komponentklass, på det här sättet:
@Component({ ... })
export class MyComponent {
constructor(_parent: MyComponent) {}
^^^^^^^^^^^
}
Detta orsakar ett cykliskt beroendefel, antagligen eftersom det hänvisar till samma instans.
I mitt fall kan jag inte injicera den andra komponenten via @Input() eftersom det inte kommer att vara en direkt förälder, utan en helt dynamisk/okänd morfar/farfarskomponent.
Svar #1
Använd @SkipSelf()-dekoreraren.
export class HelloComponent {
constructor(@SkipSelf() @Optional() private parent: HelloComponent) {
}
}
Demo
