AppComponent中的RouteParams

时间:2016-05-08 13:13:40

标签: javascript routing angular routeparams

我试图制作一个简单的单组件应用程序来测试Angular2,但我很难在我的应用程序组件中访问RouteParams。

这是我到目前为止所做的:

@Component({
  selector: 'app',
  template: '<h1>ID: {{id}}</h1>',
  directives: [ROUTER_DIRECTIVES],
  providers: []
})
@RouteConfig([
  { path: '/', component: App }
])
class App {
  private id: string

  constructor(params: RouteParams) {
    this.id = params.get('id')
  }
}

bootstrap(App, [
  ROUTER_PROVIDERS,
])

基本上我想要达到的目的是让用户转到http://website.com/?id=21,然后让网站显示21.我是否需要有一个单独的组件,然后让我的AppComponent提供一个路由到那个组件或者有没有办法在app组件中访问路由参数?

2 个答案:

答案 0 :(得分:1)

这可能会做你想要的事情

RedisMqServer

答案 1 :(得分:0)

以下是如何路由参数的RouteConfig

{path: '/hero/:id', name: 'HeroDetail', component: HeroDetailComponent},

以下是配置应用程序中包含路径和路由参数的代码

@Component({
selector: 'my-app',
template: `
<h1 class="title">Component Router</h1>
<a [routerLink]="['CrisisCenter']">Crisis Center</a>
<a [routerLink]="['Heroes']">Heroes</a>
<router-outlet></router-outlet>
`,
directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([

{ // Crisis Center child route
path: '/crisis-center/...',
name: 'CrisisCenter',
component: CrisisCenterComponent,
useAsDefault: true
},

{path: '/heroes',   name: 'Heroes',     component: HeroListComponent},
{path: '/hero/:id', name: 'HeroDetail', component: HeroDetailComponent},
{path: '/disaster', name: 'Asteroid', redirectTo: ['CrisisCenter', 'CrisisDetail', {id:3}]}
 ])
    export class AppComponent {

constructor(private router: Router) {
    this.setUpEvents();
}

private setUpEvents(): void {
    this.router.subscribe((value: any) => this.onNext(value));
}

private onNext(value: any): void {
  //uncomment to get the stacktrace
  //throw new Exception(""); 
    console.log(value);
}

}

the plunker for the example

在完整视图中,您可以看到路线和路线照片如何更改显示新内容:click here