gpt4 book ai didi

angular - ActivatedRoute.queryParams 未定义

转载 作者:太空狗 更新时间:2023-10-29 17:36:07 29 4
gpt4 key购买 nike

我正在尝试使用 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 创建的。

最佳答案

尝试注入(inject) 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 设置查询参数是这样的:

class SomeComponent {
constructor(private router: Router) { }
goSomewhere(): void {
this.router.navigate(['somewhere'], { queryParams: { name: 'value' } });
}
}

关于angular - ActivatedRoute.queryParams 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40362619/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com