我在Angular2中有一个组件,用于托管用户表(userTableComponnent)和另一个userDetails组件。单击users表中的一行后,我想要路由到userDetails。一种实现方式是仅传递userId,因此在userDetails中,我使用另一个http get获取用户的详细信息。但是,这是多余的,因为我抓取了userTableComponent中的所有用户信息。所以我真正需要的是将User对象从userTableComponent传递给userDetails。知道如何通过路由实现它吗?
答案 0 :(得分:12)
您可以创建一个SessionService类,并通过依赖注入将其传递给您的应用程序。
选择用户后,您可以将相关数据附加到通过DI注入的SessionService实例,并在userDetails组件中检索它。
我希望它有所帮助
答案 1 :(得分:8)
通过路由传递对象非常有限。使用服务是更好的选择。如果您通过父组件提供服务实例,则会在父级和子级中注入相同的实例,并且您可以立即获得共享数据。
另见https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service
在RC.4中,路由的data
也被重新引入How do I pass data in Angular 2 components while using Routing?