与带有斜杠的变量一起使用routeprovider

时间:2019-04-04 07:09:31

标签: angularjs route-provider

我已经定义了这个URL,/ item / 1231,但是是否可以使用带有斜杠的变量作为itemID?

如果我的商品ID是12/31,这怎么办?是否必须将其编码为%2F?

/ item / 12/31

  $routeProvider.when('/item/:itemID', {
    templateUrl: 'item_view.html',
    controller: 'ItemControler'

来自文档:

  

路由路径(与$ location.path匹配)。如果$ location.path   包含多余的尾部斜杠或缺少一个,该路由将   仍然匹配,并且$ location.path将被更新以添加或删除   尾部斜杠与路线定义完全匹配。

     

path可以包含以冒号开头的命名组:例如:名称。所有   匹配到下一个斜杠的字符并存储在$ routeParams中   路线匹配时以给定名称命名。路径可以包含已命名   以冒号开头并以星号结尾的组:例如:名称*。所有   字符急切地以给定名称存储在$ routeParams中   当路线匹配时。路径可以包含带有名称的可选命名组   问号:例如:姓名?。

     

例如,路由/ color /:color / largecode /:largecode * / edit   将匹配/ color / brown / largecode / code / with / slashes / edit并提取:

     

颜色:棕色

     

大码:代码/带有/斜杠。

https://docs.angularjs.org/api/ngRoute/provider/ $ routeProvider

但是我没有设法使它起作用

1 个答案:

答案 0 :(得分:0)

好吧,正如文档所述,只需要加上*以忽略斜杠即可。

 $routeProvider.when('/item/:itemID*', {
    templateUrl: 'item_view.html',
    controller: 'ItemControler'