2014-09-02 82 views
1

我正在用AngularJS完成我的第一個嚴肅的項目。一切正常,但我目前卡住了。當瀏覽器刷新時,我的AngularJS應用程序應該做什麼?

如果用戶刷新瀏覽器(例如F5)會怎麼樣?

傳統的Web應用程序運行在生成HTML的服務器端。在這裏,更新瀏覽器不會產生很多問題,因爲所有數據都在服務器上:例如購物車。

在我的應用程序中,AngularJS是唯一的頁面。在用戶完成他要做的事情之前,我幾乎不會回到服務器。

那麼我能做些什麼來解決這個問題,而不是在更新瀏覽器時失去用戶的進度?

任何幫助將不勝感激。

+0

如果你絕對不希望在一段時間曾經打電話給你的服務器,你可以嘗試尋找HTML5本地存儲,看看它是否能滿足你的需要(如果你不需要 2014-09-02 18:19:00

+0

@rnrneverdies你見過我的回答嗎 – 2014-09-03 06:01:13

+0

是的,但我需要時間研究和測試它,要有耐心。 :P – 2014-09-03 06:04:32

回答

0

我認爲本地存儲應該是存儲用戶信息或其他數據的最佳選擇。

主模塊中使用LocalStorageModule依賴條件是這樣的:

var masterJs = angular.module('masterJs', [ 
    'LocalStorageModule', 
    'ngRoute', 

]); 

假設我在登錄控制器登錄後一些數據存儲。所以我們設置在本地存儲中的數據是這樣的:

angular.module('masterJs') 
    .controller('LoginCtrl', function ($scope, $location, $rootScope, $http, $window,  localStorageService) { 


    $scope.login_dev = function(auth){ 
     var url = 'http://masterjs.in/users/login'; 
     $http({ 
     url: url, 
     method: "POST", 
     data:auth 
     }) 

     .success(function(data, status, headers, config) { 
     localStorageService.clearAll(); 
     localStorageService.set('id', data.data._id); 
     localStorageService.set('token_id', data.token); 
     //var token = localStorageService.get('token_id'); 
     var owner_id = localStorageService.get('id'); 
     $location.path('/account/account-overview'); 
     }) 

     .error(function(data, status, headers, config) { 
     alert("error"); 
     $location.path('/login_dev') 
     }); 

    } 
}); 

,把角區域設置Storage.js在您的應用程序和refrence他們的index.html page.you可以在下面得到角本地Storage.js鏈接,您可以通過此鏈接瞭解更多詳情。

看到this鏈接或this鏈接