NG2: Wie kann ich generisch auf die Elternkomponente zugreifen?

8

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:

%Vor%

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

    
giancarloa 13.10.2016, 15:58
quelle

3 Antworten

14

Sie können Injector API für dasselbe verwenden.

# Angular2 latest release (also applicable for older versions)

%Vor%     
micronyks 13.10.2016 16:27
quelle
6

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

auf das Kind vom Elternteil zuzugreifen

Elternkomponente

%Vor%

Kindkomponente

%Vor%

Sie sollten "val1" gedruckt sehen, den Wert der var1 des übergeordneten Elements in der untergeordneten Vorlage.

    
Liv 15.10.2016 10:42
quelle
3

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%     
giancarloa 20.10.2016 23:29
quelle

Tags und Links