单个$ routeProvider规则中的可选路径

时间:2014-02-10 10:57:14

标签: javascript angularjs angular-routing

是否可以编写如下规则:

$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...

1 个答案:

答案 0 :(得分:2)

我不确定是否可以用这种方式指定路由,但通常对于这种路由你只使用搜索参数,例如/?q=rope&costMin=0&costMax=10(我假设这是一个搜索操作) 。这样,参数是可选的,它仍然与基本路径匹配。

只需指定这样的路线:

$routeProvider.when('/', { ... });

然后将$routeParams注入您的控制器,您可以访问参数:

$routeParams = { q: 'rope', costMin: '0', costMax: '10' }