我正在使用 angular 5.0.3,我想用一堆查询参数启动我的应用程序,例如 /app?param1=hallo¶m2=123
。 How to get query params from url in Angular 2? 中给出的每个提示对我不起作用。
关于如何获取查询参数的任何想法?
private getQueryParameter(key: string): string {
const parameters = new URLSearchParams(window.location.search);
return parameters.get(key);
}
这个私有(private)函数可以帮助我获取参数,但我认为这在新的 Angular 环境中不是正确的方法。
[更新:] 我的主要应用程序看起来像
@Component({...})
export class AppComponent implements OnInit {
constructor(private route: ActivatedRoute) {}
ngOnInit(): void {
// would like to get query parameters here...
// this.route...
}
}
最佳答案
在 Angular 5 中,通过订阅 this.route.queryParams
来访问查询参数(请注意,以后的 Angular 版本 recommend queryParamMap
,另请参阅其他答案) .
示例:/app?param1=hallo¶m2=123
param1: string;
param2: string;
constructor(private route: ActivatedRoute) {
console.log('Called Constructor');
this.route.queryParams.subscribe(params => {
this.param1 = params['param1'];
this.param2 = params['param2'];
});
}
然而,路径变量由 this.route.snapshot.params
访问
示例:/param1/:param1/param2/:param2
param1: string;
param2: string;
constructor(private route: ActivatedRoute) {
this.param1 = this.route.snapshot.params.param1;
this.param2 = this.route.snapshot.params.param2;
}
关于angular - 如何从 Angular 5 中的 URL 获取查询参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47455734/