我正在重定向到我的Angular2站点,其中包含一些(可选的)附加参数,如下所示:
https://my-site.com/?param1=some-value1¶m2=some-value2
所以我想将值提取到变量中,如果它们存在:
let value1 = extractValueByParam(url, param1Str);
可以使用路由器变量吗?或者"正确"这样做的方式?
到目前为止,我找到的最好的方法是使用window.location.href值并自己解析它,但这似乎不是正确的做法。
谢谢!
答案 0 :(得分:1)
您应该使用queryParams
:
constructor (private _ar: ActivatedRoute) {}
ngOnInit() {
this._ar.params.subscribe(params => console.log(params)); // params used with '/'
this._ar.queryParams.subscribe(params => console.log(params)); // optional params used with '?'/'&'
}
官方文件:
答案 1 :(得分:0)
在你的ngModules中,将溃败设置为:
{path: '/:param1/:param2', component: YourComponent}
然后在您的组件中,使用以下内容获取值:
if(params['param1']){
var param1 = params['param1'];
}