该应用包含X
,Y
和Z
个网页。因此,路由应如下所示,我进入页面X
,然后选择一些详细信息,然后转到页面Y
,然后选择更多详细信息,然后转到Z
。所以我想在转到Z
页面后点击窗口后退按钮后,它应该转到页面X
而不是页面Y
。从Y
转到Z
时,我也尝试在{ location: 'replace' }
中添加$state.go
,但它不起作用。关于如何实现这一点的任何想法?
谢谢
答案 0 :(得分:2)
每次更改状态时,Angular都会触发一个名为$stateChangeStart
的事件,您可以利用它来发挥作用。
在app.run
中,执行
app.run(function($rootScope,$state){
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
//Check if you're going from Z to Y
if(fromState.name === 'Z' && toState.name === 'Y'){
// if so, first stop the default behavior
event.preventDefault();
// then navigate to X
$state.go('X');
}
});
});
浏览器后退按钮实际上会触发相同的事件,因此您的问题将通过此解决。
答案 1 :(得分:0)
这样做
给你的州$ state.go像..:
$state.go('y')