使用UI-Router的$state.go()
时,有没有办法向网址添加搜索参数?我想在URL中使用带有附加信息的已定义状态,而不是定义具有相同配置的新路由。
我定义了一个简单的视图:
.when('page-with-form', {
template: 'views/page-with-form.html',
url: '/page-with-form'
})
当有人导航到/page-with-form
时,我希望路线正常工作,但是当我在应用程序中有其他东西时,会将用户重定向到该路线并附加一些其他信息/page-with-form?error=true
:
$state.go('page-with-form', '?error=true');
答案 0 :(得分:44)
这是ui-router
- working example
$stateProvider
.state('MyState', {
url: '/page-with-form?error',
templateUrl: 'view.page-with-form.html',
controller: 'MyCtrl',
})
导航到此状态可能是这样的:
// href
<a href="#/page-with-form">
<a href="#/page-with-form?error=true">
<a href="#/page-with-form?error=false">
//ui-sref
<a ui-sref="MyState({error:null})">
<a ui-sref="MyState({error:true})">
<a ui-sref="MyState({error:false})">
// state.go() - in fact very similar to ui-sref directive
$state.go('MyState', {error: null})
$state.go('MyState', {error: true})
$state.go('MyState', {error:false})
url params的文档:
您还可以在&#39;?&#39;:
之后将参数指定为查询参数
url: "/contacts?myParam"
// will match to url of "/contacts?myParam=value"
在行动here
中测试它答案 1 :(得分:6)
据我了解,您正在寻找可选查询参数。幸运的是,默认情况下,查询参数是可选的。试试:url: '/page-with-form?error'
.when('page-with-form', {
template: 'views/page-with-form.html',
url: '/page-with-form?error'
});
并使用$state.go('page-with-form', {error:true});