2015-08-04 2 views
0

Я использовал местное хранилище. Когда я впервые заходил на страницу, я получаю старую локальную память. Когда я обновляюсь, я получаю текущее значение. Как я могу избежать этой ошибки? Каждый раз, когда мне нужно только текущее значение локальной памяти. Я вложил это немного с этим кодом. Я не установил ngstorage. Может ли кто-нибудь сказать мне, нужно ли устанавливать ngstorage?angularjs localstorage не работает должным образом?

.controller('SignInCtrl', [ 
 
     '$scope','$http' ,'$location','$window', 
 
     function($scope,$http, $location,$window) { 
 
\t \t 
 
    $scope.signin = function() 
 
\t \t \t { 
 
\t \t \t 
 
\t \t \t $http.post('***', userdetails).success(function(data,response) 
 
\t \t \t \t { 
 
\t \t \t \t var nameResponse = JSON.stringify(data.Name); \t 
 
\t \t \t \t window.localStorage.setItem("name",nameResponse); 
 
\t \t \t \t \t 
 
\t \t \t \t \t \t \t 
 
\t \t \t \t }) 
 
\t \t \t \t 
 
\t \t \t 
 
\t \t \t \t 
 
      } 
 

 
}]) 
 
    
 
.controller('MyprofileCtrl', [ 
 
     '$scope','$http' ,'$location','$window', 
 
     function($scope,$http, $location,$window) { 
 
\t \t 
 
\t \t var name=$window.localStorage.getItem("name"); 
 
\t //console.log(name); 
 
\t if(name == null) 
 
\t { 
 
\t \t 
 
\t \t $scope.loginstatus ="Sign Up With Us"; 
 
\t \t console.log($scope.loginstatus); 
 
\t }else 
 
\t { 
 
\t \t $scope.loginstatus ='Welcome '+ name.replace(/\"/g, ""); 
 
\t \t console.log($scope.loginstatus); 
 
\t } 
 
\t \t 
 
    
 
}]) 
 

ответ

0

да правильно вы должны использовать ngstorage модуль.

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
\t <meta charset="utf-8"> 
 
\t <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 
\t <title></title> 
 
\t <link rel="stylesheet" href=""> 
 
\t <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.3/angular.min.js"></script> 
 
\t <script src="https://cdnjs.cloudflare.com/ajax/libs/ngStorage/0.3.7/ngStorage.min.js"></script> 
 
</head> 
 
<body ng-app="myModule"> 
 
\t <div ng-controller="myCtrl"> 
 
     <button ng-click="save()">Save</button> 
 
     <button ng-click="load()">Load</button> 
 
     <input type="text" ng-model="txt"> 
 
     {{myData}} 
 
    </div> 
 
</body> 
 
<script> 
 
    var myModule = angular.module("myModule", ["ngStorage"]); 
 
    myModule.controller("myCtrl", function($scope, $localStorage) { 
 
     $scope.txt = "prabhu"; 
 
     $scope.save = function() { 
 
     \t alert($scope.txt) 
 
      $localStorage.message = $scope.txt; 
 
     } 
 

 
     $scope.load = function() { 
 
      $scope.myData = $localStorage.message; 
 
     } 
 
    }); 
 
</script> 
 
</html>

0

Нет, ngStorage не требуется, я надеюсь, что зависимость для $ окна правильно введен в контроллерах.

Попробуйте это:

var app = angular.module('your-app', ['the-dependent-modules']); 

app.controller('loginPageController', function($window) { 
    $window.localStorage.setItem('user-name', 'John'); 
}); 

app.controller('myProfilePageController', function($window, $log) { 
    var username = $window.localStorage.getItem('user-name'); 
    $log.debug('username : ' + username); 
}); 
+0

с моим кодом, пожалуйста, но это не работает для меня –

+0

в своем коде я вижу опечатку .. window.localStorage.setItem («имя», nameResponse); не должно быть $ window.localStorage.setItem ("name", nameResponse); поскольку параметр в вашей функции - это функция ($ window), а не функция (окно). –

+0

Мне нужно сменить окно на $ window справа –

Смежные вопросы