繁体   English   中英

页面刷新后,工厂的值将被擦除

[英]value of factory gets erased after page refresh

这是我的工厂

app.factory('userFactory', function(localStorageService, $http, $rootScope) {       
    var myUser = {};    

    myUser.isCrazy = false;
    return myUser;
});

当用户登录时,在登录控制器中,我从数据库中获取了一些数据,并使用if/else决定了该用户是否疯狂,所以我有

  app.controller('loginController', ['$scope', 'localStorageService', '$location','userFactory','$rootScope',
  function ($scope, localStorageService, $location, userFactory, $rootScope ) {  
      userFactory.isCrazy = true;
        }
  ]); 

然后,根据userFactory.isCrazy (也是true / false),在另一个页面的控制器中显示/隐藏divs。

app.controller('anotherPageController' ,['$scope', '$filter', '$rootScope', 'userFactory','localStorageService',
        function ($scope, $filter, $rootScope, userFactory, localStorageService) {  

        if(userFactory.isCrazy == true){    
                    $scope.myMessage = true;
        } 

         }
     ]); 

$scope.myMessage的html是

<div ng-hide="myMessage">

这是我的问题。

登录后, isCrazy true。 当我第一次访问该页面时,根据anotherPageController ,该消息是隐藏的, isCrazy仍然为true。 都好。

如果我单击刷新, isCrazy将返回false,并且消息不再隐藏。

我在这里想念什么? 为什么isCrazy无法保持其价值?

谢谢

是的,它不保存值。 为此,您必须至少使用本地存储或会话存储来保留这些值。

只需使用该值创建一个cookie。 搜索setCookie API 您可以根据需要使用JavaScript或PHP进行操作。 如果您仍然想使用angular js进行操作,请检查angular-js cookie API

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM