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

从angular2上的url提取可选参数值,angular,angular2-routing,Angular,Angular2 Routing,我正在重定向到我的Angular2站点,并附加了一些(可选)参数,如: https://my-site.com/?param1=some-value1&param2=some-value2 因此,我想将值提取到变量中(如果存在): let value1 = extractValueByParam(url, param1Str); 可以用路由器变量实现吗?或者“正确”的方法是什么 到目前为止,我发现最好的方法是使用window.location.href值并自己解析它,但这似乎不是正确

我正在重定向到我的Angular2站点,并附加了一些(可选)参数,如:

https://my-site.com/?param1=some-value1&param2=some-value2
因此,我想将值提取到变量中(如果存在):

let value1 = extractValueByParam(url, param1Str);
可以用路由器变量实现吗?或者“正确”的方法是什么

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


谢谢

在NGM模块中,将路由设置为:

{path: '/:param1/:param2', component: YourComponent}
然后在组件中,使用以下内容获取值:

 if(params['param1']){
    var param1 = params['param1'];
 }

您应该使用
queryParams

构造函数(私有的_ar:ActivatedRoute){
恩戈尼尼特(){
this._ar.params.subscribe(params=>console.log(params));//params与“/”一起使用
this._ar.queryParams.subscribe(params=>console.log(params));//与“?”/”一起使用的可选参数
}
官方文件:


但我的url不是这种形式,如何匹配?具体来说,我的参数之间没有“/”。同时出现以下错误:未处理的承诺拒绝:路由“/:令牌”的配置无效:路径不能以斜杠开头;正是我要找的!谢谢还有一件事,我看到queryParams中的百分号(%)被替换为“/”,我如何保留这些百分号,因为我需要为BeWhat百分号结转它们?不知道内部逻辑,可能是angular中的一个bug。为了不让任何人感到困惑,我看字符串值和UUID值是错误的。