Ich habe eine ListComponent. Wenn Sie in ListComponent auf ein Element klicken, sollten die Details dieses Elements in DetailComponent angezeigt werden. Beide werden gleichzeitig auf dem Bildschirm angezeigt, sodass kein Routing erforderlich ist.
Wie kann ich DetailComponent mitteilen, auf welches Element in ListComponent geklickt wurde?
Ich habe überlegt, ein Ereignis bis zum übergeordneten Element (AppComponent) auszugeben, und das übergeordnete Element hat die selectedItem.id in DetailComponent mit einem @Input festgelegt. Oder ich könnte einen gemeinsamen Dienst mit beobachtbaren Abonnements verwenden.
BEARBEITEN: Das Festlegen des ausgewählten Elements über Ereignis + @Input löst die DetailComponent jedoch nicht aus, falls ich zusätzlichen Code ausführen muss. Ich bin mir also nicht sicher, ob dies eine akzeptable Lösung ist.
Beide Methoden scheinen jedoch weitaus komplexer zu sein als die Methode von Angular 1, die entweder über $ rootScope. $ Broadcast oder $ scope. $ Parent. $ Broadcast durchgeführt wurde.
Da alles in Angular 2 eine Komponente ist, bin ich überrascht, dass es keine weiteren Informationen zur Komponentenkommunikation gibt.
Gibt es einen anderen / einfacheren Weg, dies zu erreichen?