Tengo un ListComponent. Cuando se hace clic en un elemento en ListComponent, los detalles de ese elemento deben mostrarse en DetailComponent. Ambos están en la pantalla al mismo tiempo, por lo que no hay enrutamiento involucrado.
¿Cómo le digo a DetailComponent en qué elemento de ListComponent se hizo clic?
He considerado emitir un evento hasta el elemento principal (AppComponent) y hacer que el elemento principal establezca selectedItem.id en DetailComponent con un @Input. O podría usar un servicio compartido con suscripciones observables.
EDITAR: Sin embargo, configurar el elemento seleccionado a través de event + @Input no activa DetailComponent, en caso de que necesite ejecutar código adicional. Así que no estoy seguro de que sea una solución aceptable.
Pero ambos métodos parecen mucho más complejos que la forma de hacer las cosas de Angular 1, que era a través de $ rootScope. $ Broadcast o $ scope. $ Parent. $ Broadcast.
Como todo en Angular 2 es un componente, me sorprende que no haya más información sobre la comunicación de componentes.
¿Hay otra forma más sencilla de lograr esto?