我在$locationChangeStart
上观看更改,如果用户在Step2上,并且他们尝试通过浏览器返回按钮转到Step1,我已成功中断此操作,显示警报,并且只有在用户按下OK时才会继续导航。
但是,使用event.preventDefault中断此操作实际上会删除转发历史记录。
所以,如果他们去了:step3 -> step2 -> attempt To step 1 -> stay on step 2
。然后,通过前进按钮
$rootScope.$on('$locationChangeStart',
function(event, toState, toParams, fromState, fromParams) {
// interrupt going from step 2 to step 1
if(toState.indexOf("step1") != -1) {
event.preventDefault();
// logic / modal popup here
}
});
);
我显然希望前进按钮允许step3可以访问,但是它不是在event.preventDefault()之后,任何见解?