页面刷新后数据会消失,
Data will disappear after page refresh,
现在我正在使用一个服务将数据从一个视图传递到另一个视图(也有不同的控制器),在视图 A 中,我有控制器 CtrA,因为我用来传递数据的服务是:
.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(报告)设置值,例如:
$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 中吗?
如果用户刷新页面,脚本将在浏览器中重新加载。因此,您保存的任何内容都将丢失。
如果你想持久化,那么你必须将数据存储在 localStorage 或 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;
};
现在我正在使用一个服务将数据从一个视图传递到另一个视图(也有不同的控制器),在视图 A 中,我有控制器 CtrA,因为我用来传递数据的服务是:
.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(报告)设置值,例如:
$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 中吗?
如果用户刷新页面,脚本将在浏览器中重新加载。因此,您保存的任何内容都将丢失。
如果你想持久化,那么你必须将数据存储在 localStorage 或 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;
};