2016-02-29 96 views
0

所以这是我厂值被刷新页面后删除

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

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

当用户登录,在登录控制器我从DB获得一些数据,并决定,使用if/else,如果用户是疯了还是不行,所以我必须

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

,然后在另一个页面的控制器I显示/隐藏的div,根据userFactory.isCrazy(也真/假)。

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仍然如此。都好。

如果我点击刷新,isCrazy会变回false,并且消息不再隐藏。

我在这里错过了什么?为什么isCrazy不能保持其价值?

谢谢

+3

因为您刷新了页面,这就是为什么。 – Jai

+0

@Jai那么,有没有一种方法,以保持var持久性,只使用Angular来显示刷新?谢谢 – slevin

+0

使用'$ localStorage'。 – Jai

回答

1

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

+0

那么,有没有一种方法,保持var持久性,只使用Angular来显示刷新?谢谢 – slevin

+1

我看到你正在使用localStorageService。它可以为您提供存储该值的可能性: localStorageService.set(key,val); var val = localStorageService.get(key); –

+0

是的,我将使用localStorageService毕竟,我没有看到另一种解决方案。谢谢 – slevin

1

只需创建一个具有该值的cookie。搜索setCookie API。只要您愿意,您可以使用JavaScript或PHP来完成。 如果您仍然想要使用角度js,请检查 angular-js cookie API

+0

阿哈,谢谢你。我已经使用'localStorageService'。那么,有没有办法,保持var持久性,仅使用Angular来显示刷新?谢谢 – slevin

+0

'setCookie'不依赖于框架。是JavaScript预定义的函数。 –