В Угловом 2 дочерний компонент может получить свой родительский компонент, введенный через параметр конструктора. Пример:Вставить родительский компонент того же типа, что и дочерний компонент
@Component({...})
export class ParentComponent {
...
}
@Component({...})
export class ChildComponent {
constructor(private parent: ParentComponent) { }
...
}
Это работает красиво и хорошо, и как только родитель и ребенок имеют разные типы.
Однако другой типичный пример использования - это древовидная структура, в которой каждый узел дерева отображается как отдельный компонент. Что нам делать, если каждый из компонентов узла дерева должен иметь доступ к его родительскому объекту? Я попытался это:
@Component({...})
export class TreeNodeComponent {
constructor(private parent: TreeNodeComponent) { }
...
}
Но это терпит неудачу за исключением следующего выполнения:
EXCEPTION: Cannot instantiate cyclic dependency!
Я думаю, причина в том, что Угловое 2 впрыскивает сам компонент, а не его родительский компонент.
Как определить угловое значение для инкорпорации компонента компонента, даже если они одного типа?
Plunkerhttps://plnkr.co/edit/ddvupV?p=preview
Почему вы вставляете родителя, почему бы просто не использовать привязку данных? –
Попробуйте этот: http://stackoverflow.com/questions/34540615/how-do-i-inject-a-parent-component-into-a-child-component – Damitha