1 回答
TA贡献1877条经验 获得超1个赞
ok, 我找到一个可以实现的方法,贴代码如下:
$stateProvider
.state('main', {
url: '/',
templateUrl: 'main.html',
controller: 'MainCtrl',
controllerAs: 'mn'
})
.state('main.enter', {
url: '^/enter',
template: '<div ui-view class="enter"></div>'
})
.state('main.enter.paper', {
url: '^/enter/paper/:page?sort=1&per_page&publisher_id&school_stage_id&subject_id&volume_id&grade_id&type_id&level&year&province_id&area_id&city_id&time_start&time_end',
templateUrl: 'enter_paper.html',
controller: 'EnterPaperCtrl',
controllerAs: 'ep'
});
就是在定义 url 的时候,后面先定义可选参数,'^/enter/paper/:page?sort=1&per_page&publisher_id,
这样,在进入 'main.enter.paper' 后,地址栏可以看到 url 是 /enter/paper/1?sort=1&per_page=10,
因为我进入 EnterPaperCtrl 就更新了一次 url,更新参数就是 {page: 1, sort: 1, per_page: 10},然后如果选中出版社,查询后更新 url,
var params = {
page: 1,
sort: 1,
per_page: 10,
publish_id: '38dfjdfkj889'
};
$state.go('.', params, {notify: false});
可以看到 url 将更新为 /enter/paper/1?sort=1&per_page=10&publish_id=38dfjdfkj889
添加回答
举报