在路由中传递对象

Passing objects in routing

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

您可以创建一个 SessionService class 并通过依赖注入将其传递给您的应用程序。

选择用户后,您可以将相关数据附加到通过 DI 注入的 SessionService 实例,并在 userDetails 组件中检索它。

希望对你有帮助

通过路由传递对象非常有限。使用服务是更好的选择。如果您通过父组件提供一个服务实例,那么同一个实例将被注入到父组件和子组件中,并且您可以立即获得共享数据。

另见 https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service

在 RC.4 中还重新引入了 data 路由