javascript - angular如何使变量刷新页面后仍存在
PHPz
PHPz 2017-04-11 11:54:58
[JavaScript讨论组]

想要做的效果是这样的:

点击提交按钮后通过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');
PHPz
PHPz

学习是最好的投资!

全部回复(8)
PHP中文网

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

  1. 初始化为空值

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

  3. 写改变该值的函数

迷茫

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

高洛峰

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

PHP中文网

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

迷茫

我觉得楼上说的很有道理

黄舟

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

PHP中文网

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

ringa_lee

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号