I'm trying to figure out a way to keep my angular
variables with page refresh / across controllers. My workflow is,
I tried two ways,
1 - Assigning the token to a rootScope
Not working
2 - By using a factory
#app.js 'use strict'; angular.module('recipeapp', []) .run(['$rootScope', '$injector', 'Authenticate', function($rootScope,$injector, Authenticate){ $injector.get("$http").defaults.transformRequest = function(data, headersGetter) { $injector.get('$http').defaults.headers.common['auth-token'] = Authenticate.getToken(); } }]); #factory 'use strict'; angular.module('recipeapp') .factory('Authenticate', function(){ var factory = {}; var accessToken = ""; factory.setToken = function(token) { accessToken = token; } factory.getToken = function() { return accessToken; } return factory; }) #facebook controller I set the the token with every successful login Authenticate.setToken(data.app_token);
But the problem is, If I refresh the page, Authenticate.getToken()
becomes blank. I'm pretty new to angular
and cannot figure out a way to retain my data after a page refresh
any help would be much appreciated
You can use localStorage . It is really easy to use.
The easiest way to reload the current page without losing form data, use WebStorage where you have -persistent storage (localStorage) or session-based (sessionStorage) which remains in memory until your web browser is closed. window. onload = function() { var name = localStorage.
From then on, the Angular framework kick in and loads the appropriate modules and pages as route changes. When you refresh the page you lose all the state of the application since you are reloading the index. html with all the required dependencies again.
Here, i will give you simple example of disable f5 and browser refresh function in angular application. we will use window keyup and window keydown event to prevent browser page refresh in angular app. You can easily prevent browser refresh in angular 7, angular 8, angular 8 and angular 9 application.
You can use localStorage
. It is really easy to use.
var token = "xxx"; localStorage.setItem("token", token); localStorage.getItem("token"); //returns "xxx"
When you refresh a page all your JavaScript context is lost (including all data saved in variables).
One way to maintaing information from one session to another is to use the browser's localStorage. In your case, you probably want to check ngStorage.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With