angular – ActivatedRoute.queryParams未定义
发布时间:2020-12-17 10:24:17 所属栏目:安全 来源:网络整理
导读:我正在尝试使用Angular 2.0捕获查询字符串参数,并且我很难过.我有一个这样的网址 http://localhost:5000/?id_token=eyJ0eXAiO …. 我希望能够在路由占用之前捕获id_token的值,并且我丢失了参数.我发现了这个GitHub问题线程 https://github.com/angular/angul
我正在尝试使用Angular 2.0捕获查询字符串参数,并且我很难过.我有一个这样的网址
http://localhost:5000/?id_token=eyJ0eXAiO …. 我希望能够在路由占用之前捕获id_token的值,并且我丢失了参数.我发现了这个GitHub问题线程 https://github.com/angular/angular/issues/9451 但是这使用了一种不再适用的弃用方法.我尝试了以下方法 var foo = this.activatedRoute.queryParams.subscribe(params => { console.log(params); let id = params['id_token']; console.log(id); }); console.log(this.router.routerState.snapshot.root.queryParams["id_token"]); var bar = this.activatedRoute.params.subscribe( (param: any) => console.log(param['id_token'])); 我在构造函数中尝试了这些方法以及我的组件的ngOnInit(),但控制台始终显示未定义.我是在错误的地方做这件事吗我根本无法更改QS,因为它是由Azure AD创建的.
尝试注入ActivatedRoute并使用route.snapshot.queryParams [‘name’]获取queryParam,如下所示:
class SomeComponent implements OnInit { constructor(private route: ActivatedRoute) { } ngOnInit(): void { let value = this.route.snapshot.queryParams['name']; } } 通过router.navigate设置queryParams的工作方式如下: class SomeComponent { constructor(private router: Router) { } goSomewhere(): void { this.router.navigate(['somewhere'],{ queryParams: { name: 'value' } }); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |