在角度路线

时间:2015-06-03 11:07:54

标签: angularjs angularjs-routing

我正在使用angularjs路由器,因为应用程序开发已基本完成,我无法使用UI-router 。最近我按照this回答在路由中实现了两个可选参数。 这就是我做的。

app.when('/someUrl/:param1?/:param2?',{
   templateUrl:'templateurl',
   controller:'controllerName'
});

但是当我使用$location.path('/someUrl/1234/5678');时,网址会添加等效的十六进制代码'?'在URL中,参数是否可用。

即使我发送参数,我也不确定为什么会出现这个参数。 网址看起来像

localhost/someurl/1234%3F/5638%3F

如何避免使用此%3F并保留可选的路由功能,而不使用重复的路由定义。

**抱歉打字错误,我已经用以下内容定义了路线::没有问题。

1 个答案:

答案 0 :(得分:3)

%3F?,因为您没有将:作为网址的一部分提供,因此会对其进行编码。

您需要使用:来定义参数。

app.when('/someUrl/:param1?/:param2?',{
   templateUrl:'templateurl',
   controller:'controllerName'
});