2016-01-05 155 views
2

是否可以使用Angular本地存储来保存AngularJS应用程序的状态? 我创建一个基于相当简单的信息的应用程序,具有相当多的内容,我希望能够保存用户当前“位置”,因此,如果他们关闭应用程序,然后重新打开后,应用程序在那个保存点开启。保存AngularJS应用程序的状态

我一直在试图让我的周围cookies和本地存储的头,并查找相关的科目,但一直没能找到任何关于这与AngularJS,jQuery的唯一。

+2

你应该使用本地存储来实现这种目的而不是cookie,https://github.com/grevory/angular-local-storage –

+0

我已经使用了angular-local-storage(https://github.com/grevory/angular-local-storage)。我发现它非常稳定和有据可查。 – jbrown

+0

谢谢你们,我已经研究过这也并看着它节约的伟大工程,输入文字,但它是保存,我挣扎在当前浏览状态的实际能力。即,如果他们关闭该页面并稍后重新打开,则会将它们带回到同一个地方。将继续挖掘! – damianchapsmith

回答

0

你解决了这个问题吗?我解决它在以下三个步骤:

  1. 在角配置阶段,其中我拦截权限我有 另外一个$transitions.onSuccess钩。我听所有 转换成功和存储当前状态的名字 - 除非其登入或signout

    $transitions.onSuccess('*', function(trans) { 
        var currentState = trans.router.stateService.current.name; 
        if (currentState !== 'signin' && 
        currentState !== 'signout') { 
        $localStorage.storeState(trans.router.stateService.current.name); 
        } 
    }); 
    
  2. 在登入/验证过程或任何地方,你检查,如果用户已通过身份验证,您将用户重定向到一些州和用户重定向到以前的状态

    var previousState = $localStorage.getState() || Authentication.redirectState; 
    
    if (Authentication.isAuthenticated()) $state.go(previousState); 
    
  3. 在存储厂我删除signout储存状态