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

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

问题描述

现在我正在使用服务将数据从视图传递到另一个视图(也是不同的控制器),在视图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');
}

,它也将更改为View B,在VIew 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天全站免登陆