我在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的正常行为还是我设置错误了?
如果是正常行为,有什么办法可以在单击后退按钮时强制进行状态更改?
答案 0 :(得分:3)
ui-router
的正常行为是,浏览器后退按钮正在开箱即用(完全按照我们的预期)< / em>的。
尝试使用此example,还有监听器'$stateChangeStart'
写入控制台
.run(function($rootScope, $location){
$rootScope.$on('$stateChangeStart',
function (event, toState, toParams){
console.log(toParams)
});
})
(单击右上角的蓝色图标,在分隔窗口中打开预览) ...您可以在几个细节中导航,然后使用退格键盘来模仿后退按钮。 。所有人都被正确地重新劫持......检查here