我有一个 ListComponent。当在 ListComponent 中单击某个项时,该项的详细信息应该显示在 DetailComponent 中。两者同时显示在屏幕上,所以不需要路由。
如何告诉 DetailComponent 单击了 ListComponent 中的哪个项目?
我已经考虑过向父组件(AppComponent)发送事件,并让父组件使用@Input 在 DetailComponent 上设置 selectedItem.id。或者我可以使用具有可观察订阅的共享服务。
编辑: 通过 event +@Input 设置选中的项目不会触发 DetailComponent,但是,如果我需要执行其他代码的话。所以我不确定这是否是一个可以接受的解决方案。
但是这两种方法似乎都比通过 $rootScope 实现的 Angular 1方法复杂得多。$广播或 $范围。$父母。$广播。
角度2中的所有东西都是一个组件,我很惊讶没有更多关于组件通信的信息。
还有其他/更直接的方法来实现这一点吗?