2014-09-02 77 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链接