使用UI路由器处理动态的查询字符串参数集

时间:2017-04-13 18:30:51

标签: javascript angularjs angular-ui-router

假设我有一个分区对象作为查询字符串参数的网址:“domain.com/example?id=1234&params[a]=hello&params[b]=world&params[foo]=吧//等等等“

如何配置角度ui-router接受这组动态查询字符串参数?

.state('example', {
    url: '/example?id&params[*]' ??
    ...
});

1 个答案:

答案 0 :(得分:0)

在这里,您的params似乎是一个关联数组。

您可以在此链接上看到https://github.com/angular-ui/ui-router/issues/983 评论christopherthielen

.state('foo', { 
  url: '/foo/:param1?param2',
  params: { param3: null } // null is the default value
});
$state.go('foo', { param1: 'bar', param2: 'baz', param3: { id: 35, name: 'what' } });
$stateParams in 'foo' is now { param1: 'bar', param2: 'baz', param3: { id: 35, name: 'what' } }

并根据这个答案https://stackoverflow.com/a/29792020/1907391

在版本0.2.13中,您应该能够将对象传递到$ state.go,

$state.go('myState', {myParam: {some: 'thing'}})

$stateProvider.state('myState', {
                url: '/myState/{myParam:json}',
                params: {myParam: null}, ...
and then access the parameter in your controller.

$stateParams.myParam;