角 10 | 获取 URL 中的查询参数为 null 或未定义

Rom*_*man 8 typescript angular

我有这条带有查询参数的路线lang

http://localhost:4200/?lang=de
Run Code Online (Sandbox Code Playgroud)

以下示例均不起作用,它始终为 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);
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我现在已经阅读了几本指南,甚至有一些关于 Angular 10 的指南。每个指南都显示了上述示例,但我仍然无法获取 的值lang

Rom*_*man 8

这是我的工作解决方案:

var url = new URL(window.location.href);
var lang = url.searchParams.get("lang");
Run Code Online (Sandbox Code Playgroud)

这适用于 ngInit 和构造函数。