Angularjs的localstorage不能正常工作

angularjs localstorage not working properly?

本文关键字:工作 常工作 localstorage 不能 Angularjs      更新时间:2023-09-26

我使用了本地存储。当我第一次进入页面时,我得到的是一个旧的本地存储值。当我刷新时,我得到的是当前值。我怎样才能避免这个错误?每次我只需要当前的本地存储值。我用这段代码把它括起来。我没有安装ngstorage。谁能告诉我,我是否需要安装ngstorage ?

.controller('SignInCtrl', [
         '$scope','$http' ,'$location','$window', 
        function($scope,$http, $location,$window) {
		
    $scope.signin = function() 
			{ 
			 
			$http.post('***', userdetails).success(function(data,response) 
				{
				var nameResponse = JSON.stringify(data.Name);	
				window.localStorage.setItem("name",nameResponse);
					
							
				})
				
			
				
            }
 }])
 
 .controller('MyprofileCtrl', [
         '$scope','$http' ,'$location','$window', 
        function($scope,$http, $location,$window) {
		
		var name=$window.localStorage.getItem("name");
	//console.log(name);
	if(name == null)
	{
		
		$scope.loginstatus ="Sign Up With Us";
		console.log($scope.loginstatus);
	}else
	{
		$scope.loginstatus ='Welcome '+ name.replace(/'"/g, "");
		console.log($scope.loginstatus);
	}
		
    
 }])
 

是你的正确,你必须使用ngstorage模块。

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title></title>
	<link rel="stylesheet" href="">
	<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.3/angular.min.js"></script>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/ngStorage/0.3.7/ngStorage.min.js"></script>
</head>
<body ng-app="myModule">
	<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() {
        	alert($scope.txt)
            $localStorage.message = $scope.txt;
        }
        $scope.load = function() {
            $scope.myData = $localStorage.message;
        }
    });
</script>
</html>

不,ngStorage不是必需的,我希望$window的依赖被正确注入到你的控制器中。

试试这个:

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);
});