从angular2上的url中提取可选参数值

时间:2017-02-16 09:56:00

标签: angular angular2-routing

我正在重定向到我的Angular2站点,其中包含一些(可选的)附加参数,如下所示:

https://my-site.com/?param1=some-value1&param2=some-value2

所以我想将值提取到变量中,如果它们存在:

let value1 = extractValueByParam(url, param1Str);

可以使用路由器变量吗?或者"正确"这样做的方式?

到目前为止,我找到的最好的方法是使用window.location.href值并自己解析它,但这似乎不是正确的做法。

谢谢!

2 个答案:

答案 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'];
 }