How to handle / prevent browser navigation or reload in angularjs?

后端 未结 2 1112
囚心锁ツ
囚心锁ツ 2020-12-15 19:22

I would like to detect in my angular app when a user is navigating away from or reloading a page.

App (that uses some login process) should then distinguish that it

2条回答
  •  渐次进展
    2020-12-15 20:17

    I had the same problem, but Ben's answer didn't work for me.

    This answer put me on the right track. I wanted to add a warning on some states but not all of them. Here is how I did it (probably not the cleanest way) :

    window.onbeforeunload = function(event) {
       if ($state.current.controller === 'ReloadWarningController') {
          // Ask the user if he wants to reload
          return 'Are you sure you want to reload?'
       } else {
          // Allow reload without any alert
          event.preventDefault()
       }
     };
    

    (in the ReloadWarningController definition, which had the $state injected)

提交回复
热议问题