Angular UI router, back按钮确实会导致状态改变



我在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事件。

这是ui-router的正常行为还是我设置不正确?

如果这是正常的行为是否有任何方法我可以强制状态改变时,后退按钮被点击?

ui-router正常行为是,浏览器返回按钮是开箱工作(正如我们所期望的)

试着玩这个例子,还有一个监听器'$stateChangeStart'写入控制台

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

(点击右上角的蓝色图标,在分隔窗口中打开预览)…你可以在几个细节之间导航,然后使用退格键来模仿后退键…一切都被正确地重新触发了…点击这里查看

最新更新