Bevor ich beginne, beachte bitte, dass ich diese Frage ursprünglich als Feature-Anfrage auf der Website angular2 github gestellt habe. Die Anfrage wurde jedoch geschlossen und ich wurde gebeten, sie hier zu veröffentlichen. So, hier bin ich. Hoffentlich hier auf Stackoverflow werde ich mehr Glück haben. Die ursprüngliche Anfrage kann hier gefunden werden: Ссылка . Hier wiederhole ich nur meine erste Anfrage. Sie können jedoch eine Diskussion finden, indem Sie dem Link folgen. Hier gehen wir ... Daumen drücken ...
Ich brauche die Möglichkeit, einen Verweis auf die Elternkomponente generisch zu erhalten, ohne dass der Kind den Typ der Elternkomponente kennen muss. Im Grunde brauche ich so etwas (Pseudocode):
%Vor% Grundsätzlich brauche ich das _parent
-Feld von ChildComponent
, um auf ParentComponent
zu verweisen. Beachten Sie jedoch, dass der Typ von _parent
any
ist. Es ist any
, weil es buchstäblich sein kann. ChildComponent
ist eine generische Komponente, die von jedem anderen Komponententyp verwendet werden kann. Ich weiß, dass es für dieses Problem Lösungen gibt, aber alle beinhalten, dass das Kind den Typ des Elternteils kennt. Es geht ungefähr so:
Aber auch das funktioniert nicht für mich, weil ChildComponent
in jeder anderen Komponente verwendet werden kann und keiner den Typ der anderen Komponente kennt. Also was ich brauche, ist eine generische Möglichkeit, in ChildComponent
seine Elternkomponente zu injizieren, wie in der Komponentenstruktur festgelegt, ohne dass ChildComponent
den Elterntyp kennt. Weiß jemand, wie ich das erreichen kann?
Danke
Verwenden Sie @Input
und einen kleinen Trick, um this
des Elterns an das Kind zu senden. Ich denke, du kannst es auch andersherum tun, um mit einem @Output
Sie sollten "val1" gedruckt sehen, den Wert der var1 des übergeordneten Elements in der untergeordneten Vorlage.
Danke an @yurzui, dass er mich in die richtige Richtung geführt hat ... Am Ende habe ich ein paar verschiedene Wege gefunden ... leider beinhalten alle den Zugang zu privaten Mitgliedern, was nicht ideal ist ... Wenn jemand etwas Besseres weiß Weise, bitte sprechen Sie ... Danke
%Vor%Tags und Links angular