In Angular 2 kann eine untergeordnete Komponente die übergeordnete Komponente über einen Konstruktorparameter erhalten. Beispiel:Inject übergeordnete Komponente des gleichen Typs wie untergeordnete Komponente
Dies funktioniert gut und gut, solange Eltern und Kind von verschiedenen Typen sind.
Ein weiterer typischer Anwendungsfall ist jedoch eine Baumstruktur, bei der jeder Baumknoten als separate Komponente angezeigt wird. Was sollten wir tun, wenn jede der Baumknoten-Komponenten Zugriff auf ihren übergeordneten Knoten haben sollte? Ich habe dies versucht:
@Component({...})
export class TreeNodeComponent {
constructor(private parent: TreeNodeComponent) { }
...
}
Aber das schlägt mit der folgenden Laufzeitausnahme:
EXCEPTION: Cannot instantiate cyclic dependency!
Ich denke, der Grund ist, dass Angular 2 die Komponenten selbst statt seine übergeordnete Komponente injiziert.
Wie kann ich angular angeben, um die Hauptkomponente einer Komponente zu injizieren, obwohl sie vom gleichen Typ sind?
Plunkerhttps://plnkr.co/edit/ddvupV?p=preview
Warum injizieren Sie die Eltern, warum nicht einfach Datenbindung verwenden? –
Versuchen Sie diese: http://stackoverflow.com/questions/34540615/how-do-i-inject-a-parent-component-into-a-child-component – Damitha