我有以下角度路线:
$routeProvider.when('/sites/:var1/:var?/something/:year?/:month?/', {
templateUrl: 'path-to-template.html,
controller: 'PageController'
});
$locationProvider.html5Mode(true);
问题是,当我点击路线http://www.somesite.com/sites/category/something/2014/10/时,Angular会尝试匹配可选的命名组,最后将网址转换为 http://www.somesite.com/sites/category/%3F/something/2014%3F/10%3F/并将我重定向到那条道路。
有没有人知道为什么可选路径会替换为/?/(编码:%3F)?
非常感谢任何帮助。谢谢
修改
角度中的路由器会替换网址,使其与.when中提供的内容完全匹配,就/而言? (并且不确定还有什么)。所以,如果它找到匹配的路线。但是缺少/或?它只是附加它并刷新(角度刷新),然后显然url编码它。 (???:o)
答案 0 :(得分:0)
我把它缩小到尾随斜线。使用:
'/sites/:var1/:var?/something/:year?/:month?/'
与:
http://www.somesite.com/sites/category/something/2014/10/
正确解析,从两者中删除斜杠也是如此。 实际上,将任何可选的命名组添加到url会导致路由依赖于斜杠。 至于为什么这种情况正在发生......