在路由中传递对象

时间:2016-05-03 03:05:26

标签: angular angular2-routing

我在Angular2中有一个组件,用于托管用户表(userTableComponnent)和另一个userDetails组件。单击users表中的一行后,我想要路由到userDetails。一种实现方式是仅传递userId,因此在userDetails中,我使用另一个http get获取用户的详细信息。但是,这是多余的,因为我抓取了userTableComponent中的所有用户信息。所以我真正需要的是将User对象从userTableComponent传递给userDetails。知道如何通过路由实现它吗?

2 个答案:

答案 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?