这是我的工厂

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显示/隐藏divs(也是true / false)。

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不能保持其价值?

谢谢

最佳答案

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

08-28 01:23