angular - 角 10 | 获取 URL 中的查询参数 null 或 undefined
问题描述
我有这条带有查询参数的路线lang
:
http://localhost:4200/?lang=de
以下示例均无效,它始终为 null 或未定义
import { ActivatedRoute } from '@angular/router';
constructor(private route: ActivatedRoute) {
console.log(this.route.snapshot.params.lang);
console.log(this.route.snapshot.queryParamMap.get('lang'));
}
ngOnInit(): void {
this.route.queryParams.subscribe(params => {
let lang = params['lang'];
console.log(lang);
});
console.log(this.route.snapshot.queryParamMap.get('lang'));
console.log(this.route.snapshot.params.lang);
}
我究竟做错了什么?我现在已经阅读了几本指南,甚至是 angular 10 的一些指南。它们中的每一个都显示了上述示例,但我仍然无法获得lang
.
解决方案
对于 Observable 机制,您可以像这样使用 paramMap observable 并带有未定义的检查。
this.route.paramMap.subscribe(params => {
if(params.get('lang')){
let lang = params.get('lang');
console.log(lang);
}
});
@Leo 已经提出了其他解决方案。
谢谢。
推荐阅读
- ios - 如何使用 Swift 5 中的路径解压缩包中的 plist
- javascript - 在 React 中保持 state 和 ref 相同的值是一种常见的做法吗?
- gnuplot - 输出 y 轴变平
- python - 将列添加到 Spark 数据框中,其最大值小于当前记录的值
- typescript - TypeScript 不显示所有错误
- c# - WPF C#:拆分长字符串
- c# - iis 10 预初始化 blazor 服务器网站
- python - Python中的序列矩阵
- bash - Argocd 入门指南获取 FATA[0000] configmap "argocd-cm" not found 错误
- mongodb - 如何使用 azure 认知搜索?我们可以使用带有分页和排序的全局过滤表吗?