我试图制作一个简单的单组件应用程序来测试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组件中访问路由参数?
答案 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);
}
}
在完整视图中,您可以看到路线和路线照片如何更改显示新内容:click here