【问题标题】:cant get the param route angular 6无法获得参数路线角度6
【发布时间】:2019-06-07 08:45:21
【问题描述】:

我正在尝试从 url 获取 [param],并获取一些信息并使用此参数抛出服务,然后(仅在那时)转到另一个页面。

首页网址:http://localhost:4200/login/asd

应用模块:

{ path: 'login/:token', component: AppComponent},

appcomponent.ts

ngOnInit() {

this.sub = this.route.params.subscribe(params => {
  this.usr = params['token']; 
  console.log(this.usr); //THIS KEEP GETTING UNDEFINED

});
}

那个 usr 一直未定义,不知道为什么... 有什么想法?谢谢。

我尝试过这样的事情:

this.sub = this.route.params.subscribe(params => {
  if (!params['token']) { 
    console.log('NO token'); //GOES HERE EVERYTIME
     }
  this.token = params['token'];
  console.log(this.token);
});

它每次都以“没有令牌”的形式出现.. 网址可能有问题?

【问题讨论】:

  • 我尝试时无法匹配任何路线。
  • 你在构造函数中有私有路由:ActivatedRoute 对吗?只是为了确保
  • 是的先生,我有:私人路线:ActivatedRoute
  • 请测试这个网址,以确保:localhost:4200/login/40
  • 同样的结果先生。继续不确定。我不明白为什么..我在其他地方使用了参数并且工作得很好..

标签: angular typescript


【解决方案1】:

打开了另一个问题来描述您的问题。这与router-outlet 之外的ActivatedRoute 状态有关,在您的情况下,我相信您没有它。

我在 stackbliz 中进行了测试,您可以看到它与router-outlet 一起工作,但为此我必须将路由器路径更改为另一个组件(AppComponent 是根组件,所以我没有使用它)。

这是 stackblitz 示例:

https://stackblitz.com/edit/angular-izk361

这里有更多关于这个问题的信息。

Angular 2 Activatedroute params not working in Service or outside <router-outlet>

【讨论】:

  • 是的,SR!你是对的。由于某种原因,参数在路由器插座之外不起作用。我将登录名移至其他组件,并正确获取参数。谢谢!
猜你喜欢
  • 1970-01-01
  • 2018-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-09
  • 2021-02-09
  • 1970-01-01
  • 2019-05-20
相关资源
最近更新 更多