Angular,可以在浏览器刷新之前触发哪个事件

时间:2016-08-12 03:02:52

标签: angularjs refresh

刷新页面时不会触发

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
    ...
}

2 个答案:

答案 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