rootScope变量在一段时间后为空

时间:2017-01-24 10:12:45

标签: angularjs ionic-framework angularjs-scope rootscope

我正在开发一个应用ionic的应用,它应该在登录时保存一些变量,例如rootScope variables,并在应用程序运行期间在http requests中重用这些变量。

我的问题是,经过一段时间rootScope variables are null,这会导致应用程序执行出错。

我以这种方式保存了变量:

$rootScope.mail = user.username;

如何解决此问题?

感谢' S

3 个答案:

答案 0 :(得分:0)

最佳做法是在服务中创建getter和setter方法

sample.service('sampleService', function($http){

  var hat = false;

  this.setUserAuthenticated = function(value){
    hat = value
  };

  this.getUserAuthenticated = function(){

    return hat;
  };
});

答案 1 :(得分:0)

这可能是因为以下三个原因之一:

  1. 您正在重新加载页面。这会导致应用程序重置状态(单页应用程序永远不应刷新页面)
  2. 您正在使用$rootScope.mail作为参数,并删除或覆盖此刻的数据。可以避免使用angular.copy
  3. 它在某些时候被直接删除,你不知道。
  4. 无论如何,ebst的做法是避免在任何时候使用$rootScope,而是创建一个工厂来保存和传送您的数据或/和存储机制(如localStorage)。

答案 2 :(得分:0)

最好将变量存储在本地存储中,并从本地存储中检索数据并使用它们。

localStorage.setItem("username",user.username);

 localStorage.getItem("username");