Ho un ListComponent. Quando si fa clic su un elemento in ListComponent, i dettagli di quell'elemento dovrebbero essere visualizzati in DetailComponent. Entrambi sono sullo schermo contemporaneamente, quindi non sono coinvolti percorsi.
Come faccio a dire a DetailComponent quale elemento in ListComponent è stato cliccato?
Ho considerato l'emissione di un evento fino al genitore (AppComponent) e chiedo al genitore di impostare selectedItem.id su DetailComponent con un @Input. Oppure potrei usare un servizio condiviso con sottoscrizioni osservabili.
MODIFICA: L' impostazione dell'elemento selezionato tramite l'evento + @Input non attiva il DetailComponent, tuttavia, nel caso in cui dovessi eseguire codice aggiuntivo. Quindi non sono sicuro che questa sia una soluzione accettabile.
Ma entrambi questi metodi sembrano molto più complessi del modo Angular 1 di fare le cose che era tramite $ rootScope. $ Broadcast o $ scope. $ Parent. $ Broadcast.
Poiché tutto in Angular 2 è un componente, sono sorpreso che non ci siano più informazioni là fuori sulla comunicazione dei componenti.
C'è un altro / più semplice modo per farlo?