问题是路由器参数显示在URL中,而我希望我的路由器参数不显示在URL中?
myComponent.ts
@RouteConfig([
{ path: '/routerOne/:myId', component: routerOne, name: "routerOne",useAsDefault: true},
{ path: '/routerTwo/:myId', component: routerTwo, name: "routerTwo"},
])
myComponent.html
<a [routerLink]="['routerOne',{myId:this.Id}]">RouterOne</a>
<a [routerLink]="['routerTwo',{myId:this.Id}]">routerTwo</a>
答案 0 :(得分:1)
截至目前,sharedService
可能是最后一个选项,因为您不想在url
中显示数据。 RouteData
可以是一个选项,但它是immutable
。
请仔细阅读这两个主题。
答案 1 :(得分:0)
如果您想通过路由作为参数发送静态值,那么您可以通过使用此参数在URL2中显示路由的data
属性来发送。
基本上有两个选项(据我所知)通过路由发送数据
现在,当我们使用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中。
Plunker - working example of the same
了解更多信息,请阅读此awesome artical