我已经定义了这个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
但是我没有设法使它起作用
答案 0 :(得分:0)
好吧,正如文档所述,只需要加上*以忽略斜杠即可。
$routeProvider.when('/item/:itemID*', {
templateUrl: 'item_view.html',
controller: 'ItemControler'