如何订阅路线更改并获取参数?

时间:2016-07-19 15:26:44

标签: javascript angular

我已经在官方网页上尝试了这个示例,但它既不起作用,也不影响其他页面上的其他示例。路由器和路由导出都没有参数。如何订阅并获取参数更改? 我也不能使用RouteParams,我得到一个例外,没有提供者。 谢谢!

我如何使用当前版本的角度2进行此操作?

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 }
])

如何在FruitsComponent中获取appleId或bananaId更改? this.route.params不存在:(我应该使用什么?

2 个答案:

答案 0 :(得分:0)

尝试以下一项:

@RouteConfig([
    { 
        path: '/:id', name: 'Fruits', component: FruitsComponent 
    }
])
ngOnInit() {
    this.sub = this.route.snapshot.params['id'];
    if(this.sub == 'appleId/:bananaId/fruits'){
        // your code
    }
}

答案 1 :(得分:0)

这是最适合从url获取参数的

import {ActivatedRoute} from '@angular/router';

constructor(private activatedRoute: ActivatedRoute) {}

this.activatedRoute.queryParams.subscribe(params => {
  let id = = params['id'];
});