In Angular 2, un componente figlio può ottenere il componente principale iniettato tramite un parametro costruttore. Esempio:Iniettare un componente principale dello stesso tipo del componente figlio
@Component({...})
export class ParentComponent {
...
}
@Component({...})
export class ChildComponent {
constructor(private parent: ParentComponent) { }
...
}
Questo funziona bello e ben più a lungo del genitore e figlio sono di diversi tipi.
Tuttavia, un altro caso di utilizzo tipico è una struttura ad albero in cui ciascun nodo dell'albero viene visualizzato come componente separato. Cosa dovremmo fare se ognuno dei componenti del nodo dell'albero avesse accesso al suo genitore? Ho provato questo:
@Component({...})
export class TreeNodeComponent {
constructor(private parent: TreeNodeComponent) { }
...
}
Ma questo non riesce con la seguente eccezione di runtime:
EXCEPTION: Cannot instantiate cyclic dependency!
Credo che la ragione è che angolare 2 inietta il componente stesso invece del suo componente principale.
Come posso dire angolare per iniettare il componente padre di un componente anche se sono dello stesso tipo?
Plunkerhttps://plnkr.co/edit/ddvupV?p=preview
Perché si inietta il genitore, perché non utilizzare solo l'associazione dati? –
Prova questo: http://stackoverflow.com/questions/34540615/how-do-i-inject-a-parent-component-into-a-child-component – Damitha