页面刷新后数据会消失, [英] Data will disappear after page refresh,

查看:49
本文介绍了页面刷新后数据会消失,的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

现在我正在使用一个服务将数据从视图传递到另一个视图(不同的控制器也是如此),在视图 A 中,我有控制器 CtrA,我用来传递数据的服务是:

Now I am using a service to pass data from view to other view(different controller too), in the view A, I have controller CtrA,for the service I use to pass data is:

.factory(
                'editreportservices',
                [
                        '$q',
                        'sessionId',
                        function($q, sessionId) {
                                var sharedata = {};
                                var org={};
                                function passed(data){
                                    sharedata = data;
                                };
                                function getsharedata(){
                                    return sharedata;
                                };
                                function passedorg(data) {
                                    org=data;
                                }
                                function getorg() {
                                    return org;
                                }
                                return{
                                    passed:passed,
                                    getsharedata:getsharedata,
                                    passedorg:passedorg,
                                    getorg:getorg
                                }               
                        }]);

在 CtrA 中,如果我点击按钮,我将为 editreportservices.passed(report) 设置值,例如:

in the CtrA, if I hit a button, I will set value for editreportservices.passed(report) like:

$scope.goeditpage = function(report){if(report){
                            editreportservices.passed(report);
                            }
                            else{
                            report={}
                            editreportservices.passed(report);
                            };
                       $state.go('editreport');
}

它也将更改为视图 B,在视图 B 中我可以使用 $scope.lin = editreportservices.getsharedata() 访问数据,它按预期工作.但是有一个问题,我不确定它是否是一个错误,如果用户刷新页面,从 viewA 传递的数据将消失.这可能是一个糟糕的用户体验,无论如何我可以在从 VIewA 传递数据后将数据保留在 viewB 中吗?

and it will also change to View B, and in VIew B I can access to the data by using $scope.lin = editreportservices.getsharedata(), It works as expect. But there is a problem,I am not sure it is a bug or not,if user refresh page, the data passed from viewA will disappear. it may be a bad user experience, is there anyway I I can keep the data in viewB after It is passed from VIewA?

推荐答案

如果用户刷新页面,脚本将在浏览器中重新加载.因此,您保存的任何内容都将丢失.

If the user refresh the page, the scripts will load freshly in the browser. So whatever you've saved will be lost.

如果要持久化,则必须将数据存储在 localStorage 或 cookie 中.

If you want to persist, then you must store the data either in localStorage or in cookies.

为您服务,

var sharedata = localStorage.getItem("shareData")?  JSON.parse(localStorage.getItem("shareData")) || {};
var org={};
function passed(data){
      sharedata = data;
      localStorage.setItem("shareData", JSON.stringify(sharedata));
};
function getsharedata(){
     return sharedata;
};

这篇关于页面刷新后数据会消失,的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆