我有以下链接。
<a ui-sref="...">Clicking this adds ?test=true to the query params.</a>
有没有办法使用ui-sref属性来更改查询参数而无需重新加载页面或指向另一个函数?
答案 0 :(得分:26)
你应该可以通过传递带状态的参数来实现。
尝试: -
<a ui-sref="yourStateName({test:true})">Clicking this adds ?test=true to the query params.</a>
<强> Usage: 强>
UI-SREF =&#39; Statename的&#39; - 导航到州,没有参数。 &#39; Statename的&#39;可以是任何有效的绝对或相对状态,遵循与$ state.go()
相同的语法规则ui-sref =&#39; stateName({param:value,param:value})&#39; - 使用参数导航到州。
答案 1 :(得分:10)
结合PSL的回答,为了防止在设置状态时刷新,只需使用属性reloadOnSearch: false
。
.state('myState', {
url: '/myState?test',
reloadOnSearch : false,
...
})
只要您的查询在同一状态下进行。
答案 2 :(得分:9)
只需在状态URL
中定义查询参数的名称$stateProvider.state('posts', {
url: '/posts?test&answer',
views: {
content: {
templateUrl: 'templates/posts/index',
controller: 'PostsController'
},
navbar: {
templateUrl: 'templates/partials/navbar'
}
}
})
并像这样使用
<a ui-sref="posts({test: true, answer: false})">Next Page</a>
我使用的是ui-router版本0.2.15