角度ui路由器,后退按钮确实导致状态改变

时间:2014-07-27 12:44:48

标签: ruby-on-rails angularjs angular-ui-router

我在rails应用程序中使用angular并且ui-router设置了几个状态。

name: 'item'
url: '/items'

儿童状态

name: detail
url: "/{item_id:[0-9]{1,4}}/detail"
parent: item

我使用

进行状态转换
$state.go('detail', item_id: id)

除非我点击浏览器上的后退按钮,否则一切似乎都正常。

当单击后退按钮时,浏览器地址栏中的位置会正确更改以显示先前状态的唯一URL,但是ui-router似乎没有更改状态,并且我没有获得$ stateChangeStart事件。 / p>

这是ui-router的正常行为还是我设置错误了?

如果是正常行为,有什么办法可以在单击后退按钮时强制进行状态更改?

1 个答案:

答案 0 :(得分:3)

ui-router正常行为是,浏览器后退按钮正在开箱即用(完全按照我们的预期)< / em>的。

尝试使用此example,还有监听器'$stateChangeStart'写入控制台

.run(function($rootScope, $location){

    $rootScope.$on('$stateChangeStart', 
      function (event, toState, toParams){
        console.log(toParams)
      });
})

(单击右上角的蓝色图标,在分隔窗口中打开预览) ...您可以在几个细节中导航,然后使用退格键盘来模仿后退按钮。 。所有人都被正确地重新劫持......检查here