在 angular 路由中使用多个可选参数时的额外字符
Extra character while using multiple optional parameter in angular route
我正在使用 angularjs 路由器,因为应用程序开发快完成了,我不能使用 UI-router。最近我通过遵循 this 答案在路由中实现了两个可选参数。
这是我做的。
app.when('/someUrl/:param1?/:param2?',{
templateUrl:'templateurl',
controller:'controllerName'
});
但是当我使用 $location.path('/someUrl/1234/5678');
时,url 正在添加等效的十六进制代码 '?'在 URL 参数是否可用。
即使我正在发送参数,我也不确定为什么会出现这个参数。
url 看起来像
localhost/someurl/1234%3F/5638%3F
如何在不使用重复路由定义的情况下避免此 %3F 并保留可选路由功能。
** 抱歉打字错误,我已经用 : 定义了路由,:
没有问题。
%3F
是 ?
,因为您没有提供 :
它被视为 URL 的一部分,因此它们被编码。
您需要使用:
来定义参数。
app.when('/someUrl/:param1?/:param2?',{
templateUrl:'templateurl',
controller:'controllerName'
});
我正在使用 angularjs 路由器,因为应用程序开发快完成了,我不能使用 UI-router。最近我通过遵循 this 答案在路由中实现了两个可选参数。 这是我做的。
app.when('/someUrl/:param1?/:param2?',{
templateUrl:'templateurl',
controller:'controllerName'
});
但是当我使用 $location.path('/someUrl/1234/5678');
时,url 正在添加等效的十六进制代码 '?'在 URL 参数是否可用。
即使我正在发送参数,我也不确定为什么会出现这个参数。 url 看起来像
localhost/someurl/1234%3F/5638%3F
如何在不使用重复路由定义的情况下避免此 %3F 并保留可选路由功能。
** 抱歉打字错误,我已经用 : 定义了路由,:
没有问题。
%3F
是 ?
,因为您没有提供 :
它被视为 URL 的一部分,因此它们被编码。
您需要使用:
来定义参数。
app.when('/someUrl/:param1?/:param2?',{
templateUrl:'templateurl',
controller:'controllerName'
});