角度2通过服务而不是路由器参数传递参数

时间:2016-05-23 22:45:37

标签: typescript angular angular2-routing

将参数从组件传递给组件时,我们可以使用以下

  onSelect(hero: Hero) {
    this.router.navigate( ['HeroDetail', { id: hero.id }] );
  }

但是当要传递的数据很复杂时,上面的内容会使URL看起来很乱。我试图通过父级别的服务传递参数,它工作正常。然后onSelect()变为

  onSelect(hero: Hero) {
    this._heroService._dataStore.hero = hero;
    this.router.navigate( ['HeroDetail' );
  }

ngInit()我从id检索了this._heroService._dataStore.hero.id。这使URL更加清晰。

我的问题是这种方法有什么缺点吗?如果是的话,人们会解决这些问题?

1 个答案:

答案 0 :(得分:1)

我认为一个缺点是,如果它是url参数,您将无法刷新页面并保留数据。