Angular2 两条路线到一个组件?

Angular2 two routes to one component?

在Angular 2 我想定义两条路线,它们使用相同的组件,但一条路线是使用特殊预设参数的特殊情况。现在我要做的是他的:

@RouteConfig([
  { path: '/',  name: 'Home', component: HomeComponent    },
  { path: '/user/:id', name: 'User', component: UserComponent  },
  { path: '/special-user', name: 'User', component: UserComponent, params:{'userId':'123'}  },
])

我需要的是 "params" 最后一个到“/special-user”的路由定义。这可能吗?

编辑:在路径 /user/:id 中,id 是 url 的一部分,但在特殊用户情况下,我希望 id 不可见,而不是 url 的一部分url

Angular 2 Beta.x

定义路线为

@RouteConfig([ 
  ...
  { path: '/special-user/:userId', name: 'SpecUser', component: UserComponent}
])

使用

内部模板

[routerLink]="['SpecUser', {userId:123}]"

内部组件

export class SomeComponent  {
  constructor(private router: Router) {}

  someMethod() {
    this.router.navigate(['SpecUser', {userId:123}]);
  }
}

Angular 2 RC

定义路线为

@Routes([ 
  ...
  { path: '/special-user/:userId', component: UserComponent}
])

使用

内部模板

[routerLink]="['/special-user', 123]"

内部组件

export class SomeComponent  {
  constructor(private router: Router) {}

  someMethod() {
    this.router.navigate(['/special-user', 123]);
  }
}

我在这篇文章中找到了答案:

https://auth0.com/blog/2016/01/25/angular-2-series-part-4-component-router-in-depth/1

配置路由

@RouteConfig([
  { path: '/myroute', component: MyComponent, name: 'MyRoute', data: { isAdmin: true } }
])

组件内部:

import {RouteData} from 'angular2/router';

export class MyComponent {
  isAdmin: boolean;

  constructor(data: RouteData) {
    this.isAdmin = data.get('isAdmin');
  }
}