Я устанавливаю значение локального хранилища в службе AngularJS и пытаюсь получить значение в контроллере AngularJS. Но в контроллере, получая нулевое значение вместо значения, которое я установил в службе.Значение локального хранилища JavaScript от Service to Controller в AngularJS
Вот сервис, где я поставил значение локального хранения:
app.factory('accountService', ['$http', '$q', 'serviceBasePath', 'userService', '$window', function ($http, $q, serviceBasePath, userService, $window) {
var fac = {};
fac.login = function (user) {
var obj = { 'username': user.username, 'password': user.password, 'grant_type': 'password' };
Object.toparams = function ObjectsToParams(obj) {
var p = [];
for (var key in obj) {
p.push(key + '=' + encodeURIComponent(obj[key]));
}
return p.join('&');
}
var defer = $q.defer();
$http({
method: 'post',
url: serviceBasePath + "/token",
data: Object.toparams(obj),
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).then(function (response) {
userService.SetCurrentUser(response.data);
// The local storage value I have set
localStorage.setItem('IsAuthenticated', true);
localStorage.setItem('userName', response.username);
defer.resolve(response.data);
}, function (error) {
defer.reject(error.data);
})
return defer.promise;
}
fac.logout = function() {
userService.CurrentUser = null;
userService.SetCurrentUser(userService.CurrentUser);
}
return fac;
}])
Вот контроллер, где я пытаюсь получить ранее установленное локальное значение хранения:
app.controller('indexController', ['$scope', 'accountService', '$location', '$window', function ($scope, accountService, $location, $window) {
$scope.message = localStorage.getItem("IsAuthenticated");
console.log($scope.message);
$scope.logout = function() {
accountService.logout();
$location.path('/login');
}
}])
Проблема: я получаю значение null вместо значения, которое я установил в сервисе.
Любая помощь Пожалуйста!
Пожалуйста, проверьте локальное хранилище с помощью хрома отладки инструмента. Это значение хранится в локальном хранилище или нет – cfprabhu
[MCVE] (http://stackoverflow.com/help/mcve). Никто, кроме вас, не знает, что именно там происходит. Если это null, наиболее разумным объяснением является то, что значение не было установлено. – estus
Если вы никогда не называете «логин» ... И почему, зачем перегружать объект? Вы используете перегрузку ТОЛЬКО ОДИН !!! – Nico