Detecting page unload in angularjs
14,311
This should do it, but I also suggest avoiding $rootScope
as global state is discouraged, and you might also wrap localStorage
in a service so that it can be injected and mocked for testing.
.run([
'$window',
'$rootScope',
function($window, $rootScope) {
$window.addEventListener('beforeunload', function() {
localStorage.myValue = $rootScope.myValue;
});
}
]);
Related videos on Youtube
Author by
user1491636
Updated on June 04, 2022Comments
-
user1491636 almost 2 years
I have a javascript object which I need global to my angularjs application. When the application is about to be unloaded (due to a page refresh or some other scenario), I would like to persist the object to browser storage. I believe adding the object to $rootScope would fulfill the first requirement of making the object global, but writing the object to storage during the
onbeforeunload
event, would require access to the $rootScope variable. Is it possible to detect a page unload event in angularjs? -
user1491636 over 9 yearsThanks. And would the event for page completed loading be
load
? -
m59 over 9 years@user1491636 I don't think you should be using that event. If you want something to run at the beginning of your Angular app, just put it in a
run
block as in my example here. -
Ivan Ferrer about 6 yearsYour solution does not solve the problem, because even by clicking cancel it is called.
-
m59 about 6 years@IvanFerrer Clicking cancel on what? Nothing in the post or my answer involves any buttons, that I know of.