通配符 * 命名组 (:name*) 不适用于 $routeProvider Angular js v1.0.6

2024-01-31

我正在尝试通过以下代码片段在 Angular js 中进行通配符 (*) 路由:

$routeProvider.when('/something/:action/:id/:params*\/', {

  templateUrl : "/js/angular/views/sample/index.html",

  controller : 'SampleCtrl'

}).otherwise({

  redirectTo: '/something/all' //This exists in real code

});

示例路径:/#/something/details/201/1

调用此 url 时,它会执行 other 方法。我在这里做错了什么? 提前致谢


The $routeProvider不支持标准正则表达式,但它支持命名组:

  • 路径可以包含以冒号 (:name) 开头的命名组。当路由匹配时,下一个斜杠之前的所有字符都会匹配并存储在给定名称下的 $routeParams 中。

  • 路径可以包含以星号(*名称)开头的命名组。当路由匹配时,所有字符都会急切地存储在给定名称下的 $routeParams 中。

所以你应该尝试

$routeProvider.when('/something/:action/:id/:params/*rest'

这将匹配/#/something/details/201/1/whatever/you/say

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通配符 * 命名组 (:name*) 不适用于 $routeProvider Angular js v1.0.6 的相关文章

随机推荐