Angular2 rc1路由器按网址导航

时间:2016-05-16 11:09:45

标签: angular router

我有url / app的父组件 当我输入enter到该组件时,默认情况下,下面的组件加载了以下路由:

@Routes([
   { path: '/users', component: UserComponent },
   { path: '/other', component: OtherComponent }
])

我正在实现OnInit接口:

ngOnInit() {
    this.router.navigate(['users'], this.currSegment);
}

由于父路由是/ app而child正在实现ngOnInit,我可以导航到用户,但是如果我想直接通过url导航到路由/其他,则不可能。

3 个答案:

答案 0 :(得分:6)

同一

有两种方法可供选择
  • router.navigate(['.....'])
  • router.navigateByUrl('.....')

如果你要使用的第一个比你可以使用的那样

this.router.navigate(['/users']);

接受路径名为

的数组

并且在第二种情况下,您必须将字符串作为参数传递,如此

this.router.navigateByUrl('/app/users');
  

传递参数

如果你想发送路由参数和路由,那么你可以像这样使用

this.router.navigateByUrl(' /应用程序/用户/&#39 + ID);

其中id是您的数据/密钥

另见

答案 1 :(得分:1)

您需要声明@Route参数:

@Route([
  { path: '/users/:id', component: UsersComponent }
])
export class MyComponent implements OnInit {
  constructor(private router: Router) {}
  ngOnInit() {
    // assuming this.userId comes from somewhere
    this.router.navigate(['/users/', this.userId]);
  }
}

如果您需要访问params,可以在构造函数中使用RouteSegment

constructor(private segment: RouteSegment) {
  this.userId = segment.getParam('id');
}

答案 2 :(得分:0)

在angular2 rc1中,路由没有名称参数,您现在必须使用以下代码导航到不同的页面

this._router.navigate(['/users']);