更改状态,而不会在角UI路由器改变浏览器的历史

假设我们有这样一个逻辑:更改状态,而不会在角UI路由器改变浏览器的历史

  • 从状态A,状态变为B.
  • 每当我们到达状态B,应用程序始终重定向我们状态C调用$state.go(stateC)
  • 现在我们在状态C

我的问题是怎么回去,从状态C状态A(鉴于国家A可以是任何状态,我们不要在跑步时不知道这意味着用户可以从任何其他状态访问状态B)

回答:

使用location选项与价值“替换为” ...

$state.go(stateC, null, { 

location: 'replace'

})

见https://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$state#methods_go

位置 - {boolean = true | string =} - 如果true将更新位置栏中的网址,如果false不会。如果字符串,必须是"replace",这将更新网址,并且取代最后的历史记录。

回答:

您可以跟踪服务中的访问状态,然后在之前的状态下调用$ state.go。

,您可以观看状态的变化,像这样:

$rootScope.$on('$stateChangeStart', 

function(event, toState, toParams, fromState, fromParams){

// add fromState to history

});

How to $watch state change of $stateProvider in AngularJS?

以上是 更改状态,而不会在角UI路由器改变浏览器的历史 的全部内容, 来源链接: utcz.com/qa/259543.html

回到顶部