首页 > angular如何使变量刷新页面后仍存在

angular如何使变量刷新页面后仍存在

想要做的效果是这样的:

点击提交按钮后通过ajax操作数据库,然后将确认关联改成已关联。

但是页面刷新或者后退会重新变成确认关联。

我尝试了使用service,但是为什么刷新页面后之前service保存在object里的数据也会被重置?难道要使用$rootScope?

app.service('test', function () {
  this.object = {};
  this.set = function (key, value) {
    this.object[key] = value;
    return this.object;
  };
  this.get = function (key) {
    var result = this.object[key];
    return result;
  };
  return this;
});

点击事件代码:

      test.set('isApply', 'true');
      $scope.model.isApply = forsure.get('isApply');

刷新页面后,js会重载,所有变量会重置!如果要记录可以用cookies或者HTMl5的sessionStorage和localStorage


按照你的思路来说。你说的把状态保存到service是对的,可能写法又问题。set方法没有必要return 对象回来。set之后你要确定你的属性和值被保存到对象上了。建议你用this.object.isApply = true;这种形式写保存状态。


进入页面后,没有ajax去get数据库里是否关联的值吗?
对于页面上某个可以改变的值
我一般是

  1. 初始化为空值

  2. 有必要的话ajax去取当前数据库里的值

  3. 写改变该值的函数


控制这个按钮显示状态的变量应该从服务端获取,你这么做不合理呀……


这个最初的状态也是得从后台取的啊,如果没关联再通过ajax设置状态啊,并保存在数据库啊


可以在提交的时候把变量存到session里面,然后从服务端获取显示状态


我觉得楼上说的很有道理


使用$rootScope肯定不行的,因为刷新页面之后JS是重新加载执行的,angular会重新初始化,推荐存储在localstorage中,但是要注意及时清理。

【热门文章】
【热门文章】