Angular可选哈希URL参数

时间:2015-12-17 15:32:30

标签: angularjs angular-routing

我正在尝试创建一个动态哈希Url,因此我可以预订标记,以便角度路由将其拾取。我有超过50个可以附加到哈希的搜索字段。有没有办法创建一个通用路由,使用$ routeParams捕获所有可选的哈希值,而不必指定每个搜索参数?

我使用$ location.path(path,false)为我的新网址注入了哈希值,因此屏幕不会刷新,但角度路由选择了它。

示例网址

#/搜索/一个/ 1 / B / 4 / C / 0

#/搜索/ C / 111 / d / 2 / E / 0

$routeProvider.
    when('/search/a/:a?/b/:b?/c/:c?/', {
        templateUrl: '/app/partials/search.html',
        controller: 'SearchCtrl'
    }).

1 个答案:

答案 0 :(得分:0)

查询参数

即使在与您交换评论后,我也不完全确定您的最终目标是什么。我认为使用 params 的动态特性,通过将传统查询参数用于单个状态,您可能会更好。

'/search/make/{make_id:apple|windows|android}/model/{model_id:ipad|iphone|win_phone|galaxy|nexus}/style/{style_id:mini|nano|giant}'

假设您可以拥有任意数量的参数组合,这些参数可能相互关联,也可能不相关。

借用RESTful方法

这假设您对查询参数方法不满意,并且确实正在寻求更有条理的方法来执行此操作。有一点 RESTful 看起来假设每个资源位置(意思是“/ position1 / pos2 / pos3”)有一定数量的参数。换句话说,你不会拥有所有和任何可能的组合,只有一组合理的组合。

try_obj

note - 我从ui.router定义URL参数的方式借用,假设非ui.router路由器类似地处理正则表达式。