Possiedo un componente elenco. Quando un elemento viene cliccato in ListComponent, i dettagli di quell'elemento dovrebbero essere mostrati in DetailComponent. Entrambi sono sullo schermo allo stesso tempo, quindi non è necessario il routing.Angolare 2 Comunicazione componente fratello singolo
Come si comunica a DetailComponent quale elemento in ListComponent è stato selezionato?
Ho preso in considerazione l'emissione di un evento fino al parent (AppComponent) e il padre ha impostato l'oggetto selected.tem su DetailComponent con un @Input. Oppure potrei usare un servizio condiviso con abbonamenti osservabili.
EDIT: Impostazione della voce selezionata tramite evento + @Input non attiva il DetailComponent, però, nel caso in cui dovessi avere bisogno di eseguire codice aggiuntivo. Quindi non sono sicuro che questa sia una soluzione accettabile.
Ma entrambi questi metodi sembrano molto più complessa di quella angolare 1 modo di fare le cose che era sia attraverso $ rootScope. $ Trasmissione o $ portata. $ Genitore. $ Broadcast.
Poiché tutto in Angular 2 è un componente, sono sorpreso che non ci siano più informazioni sulla comunicazione dei componenti.
C'è un altro/più semplice modo per realizzare questo?
Hai trovato un modo per condividere i dati di pari livello? Ne ho bisogno come osservabile .. –
trovi la soluzione per questo, ho bisogno anche di questo –