Angularjs ui router如何在没有重载状态的情况下更改Url

时间:2021-11-08 17:47:32

Angularjs ui router更改url可以使用$state.go()。

$state.go()内部是使用$state.transitionTo()实现,默认设置了{ location: true, inherit: true, relative: $state.$current, notify: true } 参数。

$state.go

$state.go('stateName',params,{
    // 防止onStart和onSuccess事件发生
    notify:false,
    // 防止重新加载当前状态
    reload:false, 
    // 当更改参数时替换最后一条记录,所以不要按下后退按钮并获取旧的参数
    location:'replace', 
    // 继承url上的当前参数
    inherit:true
});

不需要重新加载当前状态示例

$state.go('stateName', {id: newId}, {notify: false,reload:false})