如何通过router.navigate()将数据传递到Angular 2组件?

如何通过router.navigate()将数据传递到Angular 2组件?

问题描述:

我有一个简单的系统,我有一个登录组件,一个登录服务,一个信息组件(包含有关用户的信息)和一个信息服务。如何通过router.navigate()将数据传递到Angular 2组件?

我的想法是让登录组件将usr/pwd发送到登录服务,如果它返回'true'(即有效凭据),则应用程序将为信息组件交换登录组件,并用该用户的数据填充它(这是从<router-outlet></router-outlet>)。

我正在更改组件this.router.navigate(["farmer"]) - 我如何传递一个包含农民姓名的字符串? (这将是他们登录的用户名)。

我会有一个单身全球服务,并在那里设置名称,然后在访问该服务的任何地方都可以访问它。

我认为你需要添加路由信息/:名称,并且当你从登录组件调用.navigate()方法时,只需传递一个类型为NavigationExtras的附加对象。 这将是这样的:

this.router.navigate(['/info'], { queryParams: { name: 'farmer' } }); 
+1

是否有可能做到这一点,而无需使用/:pathvars - 这将是可以读取从路由器对象queryparams? – MysteriousWaffle