2016-02-29 97 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預定義的函數。 –