Javascript 如何订阅路由更改并获取参数?
我在官方页面上尝试过这个示例,但它不起作用,其他页面上的其他示例也不起作用。路由器和路由导出都没有参数。如何订阅并获得参数更改? 我也不能使用RouteParams,我遇到了一个例外,没有提供程序。 谢谢大家! 在angular 2的当前版本中,我如何做到这一点Javascript 如何订阅路由更改并获取参数?,javascript,angular,Javascript,Angular,我在官方页面上尝试过这个示例,但它不起作用,其他页面上的其他示例也不起作用。路由器和路由导出都没有参数。如何订阅并获得参数更改? 我也不能使用RouteParams,我遇到了一个例外,没有提供程序。 谢谢大家! 在angular 2的当前版本中,我如何做到这一点 private sub: any; ngOnInit() { this.sub = this.route.params.subscribe(params => { let id = +par
private sub: any;
ngOnInit() {
this.sub = this.route.params.subscribe(params => {
let id = +params['id']; // (+) converts string 'id' to a number
this.service.getHero(id).then(hero => this.hero = hero);
});
}
我的代码:
@RouteConfig([
{ path: '/:appleId/:bananaId/fruits/...', name: 'Fruits', component: FruitsComponent }
])
如何在水果组件中获得appleId或bananaId更改?
this.route.params
不存在:(我应该用什么来代替?试试下面的一个:
@RouteConfig([
{
path: '/:id', name: 'Fruits', component: FruitsComponent
}
])
ngOnInit() {
this.sub = this.route.snapshot.params['id'];
if(this.sub == 'appleId/:bananaId/fruits'){
// your code
}
}
这是最适合从url获取参数的方法
import {ActivatedRoute} from '@angular/router';
constructor(private activatedRoute: ActivatedRoute) {}
this.activatedRoute.queryParams.subscribe(params => {
let id = = params['id'];
});
这仅适用于路由包含参数的组件。例如,如果该参数适用于子路由,则仅适用于该子路由的组件,而不适用于
AppComponent
。另请参见添加路由以及包含问题代码的组件。因此,您使用的是不推荐使用的路由器吗gOnInit()代码与新路由器类似,但@RouteConfig
是用于不推荐的beta路由器。这意味着您使用的是beta版本。是否有任何原因不更新到最新版本(RC.4)?新Angular2位于@Angular2
下,而不是Angular2