J'ai un ListComponent. Lorsqu'un élément est cliqué dans ListComponent, les détails de cet élément doivent être affichés dans DetailComponent. Les deux sont à l'écran en même temps, il n'y a donc pas de routage impliqué.
Comment puis-je dire à DetailComponent quel élément de ListComponent a été cliqué?
J'ai envisagé d'émettre un événement jusqu'au parent (AppComponent) et j'ai demandé au parent de définir selectedItem.id sur DetailComponent avec un @Input. Ou je pourrais utiliser un service partagé avec des abonnements observables.
EDIT: La définition de l'élément sélectionné via event + @Input ne déclenche pas le DetailComponent, cependant, au cas où je devrais exécuter du code supplémentaire. Je ne suis donc pas sûr que ce soit une solution acceptable.
Mais ces deux méthodes semblent beaucoup plus complexes que la manière angulaire 1 de faire les choses qui était soit via $ rootScope. $ Broadcast ou $ scope. $ Parent. $ Broadcast.
Tout dans Angular 2 étant un composant, je suis surpris qu'il n'y ait pas plus d'informations sur la communication des composants.
Existe-t-il un autre moyen / plus simple d'accomplir cela?