RouteParams in AppComponent
RouteParams in AppComponent
我正试图制作一个简单的单组件应用程序来测试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提供到该组件的路由,或者是否有任何方法可以访问应用程序组件中的路由参数?
这可能会满足的要求
constructor(private router:Router, private routeSerializer:RouterUrlSerializer, private location:Location) {
router.changes.first().subscribe(() => {
let urlTree = this.routeSerializer.parse(location.path());
console.log('serializer', urlTree.children(urlTree.root)[0].segment);
// or to get the next segment of the path:
// console.log('serializer', urlTree.children(urlTree.children(urlTree.root)[0])[0].segment);
});
}
以下是如何为路由参数进行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);
}
}
示例的plunker
在完整视图中,您可以看到路线和routeparams如何更改以显示新内容:单击此处
相关文章:
- Node.js's Buffer.writeFloatBE in Javascript
- Setting default onclick behavior for <img> tag in gene
- Lucene Search in Alfresco
- grep in JQuery to C#
- write HTML in JavaScript
- jQuery setTimeOut: in for-loop
- SetTimeout and clearTimeout in Javascript
- lightbox in html 5 and javascript
- HTMLInputElement in IE7
- Mongodb$in以与数组中相同的顺序获取结果
- element.dataset in Internet Explorer
- jQuery parent() in table
- Instagram oauth flow in angularjs
- In循环的In运算符前后
- 如何使用for in循环在javascript中显示对象中的对象
- Jquery change onchange in onload
- 重构 jQuery in JS 问题
- strongloop script.js run find in before delete方法:如何同步运行异步方法
- TicTacToe minimax AI in Javascript
- RouteParams in AppComponent