AngularJS $位置参数映射

时间:2015-02-26 12:08:05

标签: javascript angularjs

我正在寻找AngularJS $位置替换,它允许我更灵活地映射网址参数。

例如,我有两个根页mapblog以及一些地图页面的参数。现在角度看起来如何:

example.com/#!/map?id=1234567&view=12,43.5,55.5

我想丢弃?&垃圾并获取此类网址

example.com/#!/map/1234567/view/12/43.5/55.5

example.com/#!/map/1234567 
view is an optional parameter

example.com/#!/map/1234567/details
details is an optional flag

但我仍然想使用$location.search(view, '12,43.5,55.5')$location.search(id, '1234567')或类似的东西。

是否可以更改Angular $location以获取此类行为或是否有任何可用的替代方法?

2 个答案:

答案 0 :(得分:0)

您可以使用$ state.go()而不是$ location。 $ state.go( '页面名称');

答案 1 :(得分:0)

您可以使用angular ui-router或使用默认的angularjs'路由,例如this

.when('/map/:id', {}
.when('/map/:id/details', {}
.when('/map/:mapId/view/:id*', {}

来自documentation

  • path可以包含以冒号开头并以a结尾的命名组 star:eg:name*。所有字符都热切地存储在$ routeParams中 当路线匹配时,在给定名称下。

例如,/color/:color/largecode/:largecode*\/edit等路线将匹配/color/brown/largecode/code/with/slashes/edit并提取: