2016-12-15 5 views
0

Ich bin ein wenig peinlich, diese Frage zu stellen, weil ich fürchte, die Antwort ist etwas sehr offensichtlich, aber für mich ist es illusorisch.Angular 2 Pass Daten von Komponente B zu der Vorlage von Komponente B definiert

Ich habe drei Komponenten A, B & C. jede dieser Komponenten hat eine Vorlage. Die Vorlage der Komponente A enthält das benutzerdefinierte Tag und natürlich enthält die Vorlage der Komponente B ein benutzerdefiniertes Tag.

Jetzt habe ich ein Stück Daten, die von Komponente B zu C fließen müssen, jetzt, wenn ich @output von B die Daten an Komponente A-Vorlage gebunden ist ... oder so etwas. Diese Dosis stellt C das nicht zur Verfügung, weil sie sich kein Template teilen.

Es scheint, dass ich in der Lage sein muss, die Daten zu der Vorlage auf B aus Komponente B "auszugeben", aber das würde dann zirkulär erscheinen. Ich habe Template Reference Variables mit @ViewChild geschaut, aber dies scheint nicht zu arbeiten, um Daten auf der Vorlage B sichtbar zu machen.

Offensichtlich gibt es etwas offensichtlich, dass ich verpasst habe, irgendwelche Ideen?

+0

Sie können Komponenteneigenschaften direkt in der Vorlage verwenden. Wenn Sie 'name' deklarieren und' this.name = 'steve' festlegen, können Sie es in der Vorlage '{{name}}' anzeigen oder an andere Komponenten übergeben. '. Ist es das was du wolltest? Wenn nicht, geben Sie bitte einen Code an, da nicht klar ist, was Sie tun möchten ... – Sasxa

+0

@Sasxa; vielen dank das ist eigentlich genau richtig. Jetzt, wo ich sicher sein kann, dass dies der richtige Ansatz ist, kann ich versuchen herauszufinden, warum dieser Ansatz in meinem speziellen Fall nicht funktioniert. – Done

+0

@Sasxa; Nochmals mein Dank für Ihre Hilfe bei diesem Problem. Ich wollte eine abschließende Zusammenfassung hinzufügen, um alle losen Enden zu schließen, sollte jemand in Zukunft auf diese Frage stoßen. – Done

Antwort

0

Zur Erinnerung ... Ich habe drei Komponenten A, B & C. jeder dieser Komponenten hat eine zugehörige Vorlage. Die Vorlage der Komponente A enthält das benutzerdefinierte Tag <Bx> und die Vorlage der Komponente Bx enthält ein benutzerdefiniertes Tag <C>. Es ist wünschenswert, ein Datenobjekt von A nach C zu übergeben. Dieses Datenobjekt wird in dem Bereich 'this' der Komponente A als "this.data" definiert, so dass der erste Schritt in dieser Datenübertragung darin besteht, eine @Import() data: Obj in Komponente B und zu enthalten Fügen Sie dann in der Vorlage von A <B [data]="data"></B> hinzu. Diese @Import-Anweisung macht die this.data für Komponente B verfügbar und die dann in der Vorlage der Komponente B wie <C [data]="data"></C> platziert werden kann.

Vielen Dank an @Sasxa für die Anleitung, ich entschuldige mich für den narrativen Ansatz, aber es ist der klarste Weg, meine Situation und Lösung zu erklären.

Verwandte Themen