如何在不在url中的状态之间传递参数?

时间:2016-03-16 08:03:40

标签: angular

我想知道如何传递参数,这些参数在URL中不可见?

截至目前,我有:

{path: '/editUser/:userId', name: 'Edit User', component: UserEditComponent}

当我导航到这样的观点时:

<a href="#" [routerLink]="['Edit User',{userId: id}]"

userId将显示在网址中。

如何设置它,以便在网址中看不到它?

由于

1 个答案:

答案 0 :(得分:5)

好问题!

我不确切知道如何做到这一点,但是我知道其他的相同,所以发布回答可能会帮助某人。

基本上有两种选择(据我所知)通过路由发送数据

  • RouteParams(用于问题)
  • 数据(路由时的财产)

RouteParams

现在,当我们使用RouteParams发送数据时,我们必须以这样的方式定义:

{path: '/editUser/:userId', name: 'Edit User', component: UserEditComponent}

<a href="#" [routerLink]="['Edit User',{userId: id}]"

通过使用此方法,我们可以正常发送数据,但所有数据都在URL中可见

数据

当我们不希望在URL路径中显示数据时,我们必须使用angualr2提供的data的{​​{1}}属性通过路由发送数据。通过使用此属性,我们可以在路由配置时将其他数据发送到组件,而不会在URL中显示它。这是这个属性的例子。

@RouteConfig annotation

通过使用它,我们可以通过路由发送数据而不显示在URL中。 工作实例相同: http://plnkr.co/edit/N5IzUH0pc3nN1O7iQZkD?p=preview]

了解更多信息,请阅读此awesome article