我有一个ui路由器路由,定义如下
$stateProvider
.state('search', {
url: '/search',
abstract: true,
parent: 'loggedIn',
views: {
wrapper: {
controller: 'MyCtrl',
controllerAs: 'myCtrl',
templateUrl: '/scripts/views/search/views/search.wrapper.html'
}
}
})
.state('search.subs', {
url: '',
resolve: {
isLoggedIn: isLoggedIn
},
views: {
body: {
controller: 'SearchBodyCtrl',
controllerAs: 'searchBodyCtrl',
templateUrl: '/scripts/views/search/views/search.body.html'
}
}
});
无论如何,问题是我无法生成查询参数,因此网址看起来像/search?hello=world
我尝试使用$state.transitionTo('search.subs', {hello: 'world'})
,但这并不起作用。我想我传递的任何不匹配的参数只会放在查询字符串中,但事实并非如此。
答案 0 :(得分:2)
这应该做你想做的事:
.state('search.subs', {
url: '?hello', // This appends to the parent url
....
之后您可以使用$state.go('search.subs', { hello : 'world' })
转换到search.subs状态。
https://github.com/angular-ui/ui-router/wiki/URL-Routing#query-parameters