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

标签 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...

最佳答案

我不确定是否可以通过这种方式指定路线,但通常对于这种路线,您只需使用搜索参数,例如 /?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/

相关文章:

javascript - Mustache.js - 不呈现的 JSON 项目

javascript - 在 Node.js 中提供静态文件 - 500 内部服务器错误

javascript - Angular 预选/初始绑定(bind)到多选

javascript - 路由在 Angular js 中无法正常工作

javascript 事件处理和 z-index

javascript - 根据搜索输入按字母顺序对数组进行排序

javascript - angular form对象是否提供获取关联DOM节点的方法

javascript - 如何使用 AngularJS、Devise 和 UI Router 全局实现身份验证?

javascript - Stripe checkout 在 Angular 1.x 中不起作用

直接浏览时找不到 Angular 路由