是否可以编写如下规则:
$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...
答案 0 :(得分:2)
我不确定是否可以用这种方式指定路由,但通常对于这种路由你只使用搜索参数,例如/?q=rope&costMin=0&costMax=10
(我假设这是一个搜索操作) 。这样,参数是可选的,它仍然与基本路径匹配。
只需指定这样的路线:
$routeProvider.when('/', { ... });
然后将$routeParams
注入您的控制器,您可以访问参数:
$routeParams = { q: 'rope', costMin: '0', costMax: '10' }