stateChangeStart
。
this.scope.$on('$stateChangeStart', (event, next, current) => {
if(!confirm("Are you sure you want to refresh this page?")) {
event.preventDefault();
}
});
只有在页面刷新完成后才会触发 stateChangeSuccess
。
在刷新之前会触发哪个事件?
更新:
尝试window.onbeforeunload
不适用于我的情况
这是我的代码的一部分,是吗?
export default class TableController {
constructor($scope,$state, $location) {
//some initialization here
window.onbeforeunload = function() {
console.log('onbeforeunload');
debugger;
return null;
}
}
//other coll functions
...
}
答案 0 :(得分:0)
处理页面刷新不是角度状态的工作的一部分。
使用window.onbeforeunload
。
window.onbeforeunload = function(){
return "are your sure?";
}
注意:
当角度状态发生变化时,不会删除绑定到window.onbeforeunload
的此函数。当你不再需要它时,你需要手动将它设置为null。
window.onbeforeunload = undefined
答案 1 :(得分:0)
状态更改事件在根范围内完成。可能这可能是因为它不起作用的原因。请参阅有关如何调用状态更改事件的文档。
https://github.com/angular-ui/ui-router/wiki#state-change-events