我想知道如何传递参数,这些参数在URL中不可见?
截至目前,我有:
{path: '/editUser/:userId', name: 'Edit User', component: UserEditComponent}
当我导航到这样的观点时:
<a href="#" [routerLink]="['Edit User',{userId: id}]"
userId
将显示在网址中。
如何设置它,以便在网址中看不到它?
由于
答案 0 :(得分:5)
好问题!
我不确切知道如何做到这一点,但是我知道其他的相同,所以发布回答可能会帮助某人。
基本上有两种选择(据我所知)通过路由发送数据
现在,当我们使用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