是否可以编写这样的规则:
$routeProvider.when('(/CostMin/:costMin)?(/CostMax/:costMax)?(/Keywords/:keywords)?', {
...
});
哪个匹配括号中包含的每个路径可选?因此上述规则将匹配以下所有路径:
/
/CostMin/0
/CostMin/0/CostMax/10
/CostMin/0/CostMax/10/Keywords/rope
/Keywords/rope
// And so on...
最佳答案
我不确定是否可以通过这种方式指定路线,但通常对于这种路线,您只需使用搜索参数,例如 /?q=rope&costMin=0&costMax=10
(我假设这是一个搜索操作)。这样,参数是可选的,并且它仍然与基本路径匹配。
只需指定这样的路线:
$routeProvider.when('/', { ... });
然后将$routeParams
注入(inject)到您的 Controller 中,您就可以访问参数:
$routeParams = { q: 'rope', costMin: '0', costMax: '10' }
关于javascript - 单个 $routeProvider 规则中的可选路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21675272/