将查询参数添加到当前路径Angular2 / 4

时间:2017-12-19 12:45:56

标签: javascript angular

我在路线' / parent'上有一个父组件,它有一个链接,例如。

<a routerLink="./" [queryParams]="{query: value}">

我在嵌套路由&#39; / parent / child&#39;中有一个组件,用于侦听查询参数更改。问题是父组件生成没有子路由的链接,例如&#34;?/父查询=值&#34 ;.有没有办法只将查询参数添加到父组件的当前路由?

{
path: 'route/:value/:value_two',
component: component,
canActivate: [GuardService],
children: [{
    path: '',
    component: commonComponent
}, {
    path: 'child1',
    component: childOneComponent
}, {
    path: 'child2',
    component: childTwoComponent
}]

}

2 个答案:

答案 0 :(得分:1)

如果你想拥有像 / parent / child 这样的路线,那么你可以使用:

<a [routerLink]="['parent', 'value']" >

答案 1 :(得分:0)

这对我有用

路线

{ path: 'component-two', component: ChildOne,
    children: [
      { path: '', redirectTo: 'child-one', pathMatch: 'full' },
      { path: 'child-one', component: ChildOne },
      { path: 'child-two', component: ChildTwo }
    ]
  }

路线链接

<a [routerLink]="['/component-two/child-two']" [queryParams]="{ page: 99 }">Component Two</a>
ts文件中的

 private ngOnInit() {
     this.sub = this.route
      .queryParams
      .subscribe(params => {
        // Defaults to 0 if no query param provided.
        this.id = +params['page'] || 0;
      });
  }
在父组件中

你可以这样做

<nav>
  <a [routerLink]="['./child-one']">Child One</a>
  <a [routerLink]="['./child-two']">Child Two</a>
</nav>