Внедрение зависимостей Angular позволяет внедрить любой компонент-предок, например:
@Component({ ... })
export class MyComponent {
constructor(_parent: AppComponent) {}
}
Но в моем случае я хочу внедрить компонент-предок, который является другим экземпляром того же класса компонентов, например:
@Component({ ... })
export class MyComponent {
constructor(_parent: MyComponent) {}
^^^^^^^^^^^
}
Это приводит к ошибке циклической зависимости, предположительно потому, что она относится к одному и тому же экземпляру.
В моем случае я не могу внедрить другой компонент через @Input(), так как это будет не прямой родитель, а полностью динамический/неизвестный компонент дедушки/прадеда.





Используйте декоратор @SkipSelf().
export class HelloComponent {
constructor(@SkipSelf() @Optional() private parent: HelloComponent) {
}
}