因此,假设您有一个包含工具栏,边栏和网格的界面。该工具栏有一个下拉菜单,当用户更改时,侧边栏和网格中的内容会发生变化。回到Angular 1,我会使用服务来获得我所有的动态数据。当服务中的某些内容发生变化时,使用该服务的所有组件也会更新。Angular2 - 如何在组件之间共享数据/更改
那么在Angular 2中,它看起来像人们使用不同的方法。我想得到你的意见,哪个是首选的方式。
- 静态服务
- OnChanges
- 输入和输出
更新 - 16年3月9日
看起来像最好的解决方案就是线程蒂埃里Templier发布:Delegation: EventEmitter or Observable in Angular2
我剩下的问题是,如果最好的做法是为组件之间共享的每个数据项创建新服务,或者我们只需要一个具有存储所有共享数据的对象的服务。
See Plnkr for code
Original Plunker - 每一次变化都会有自己的服务
Revised Plunker for example - 只有一个服务存储对象中的所有数据。一个类型将被传递给每个侦听器,以检查它是否需要根据该类型进行任何操作。
其他人提供了很好的答案,但要注意,是的一个部分关于[组件交互]的文档(https://angular.io/docs/ts/latest/cookbook/component-communication.html)同样值得一读。 – jandersen