【发布时间】:2016-09-22 04:54:46
【问题描述】:
我正在创建一个简单的用户数据收集项目,它需要用户以多种形式输入数据。
我为每个表单创建了单独的 html 页面。
用户可以通过表单输入个人详细信息、教育详细信息等。
当用户输入个人详细信息并点击next时,我将数据存储在本地存储中,最后将所有数据发送到db。
当用户单击next 并再次进入同一页面时,我从本地存储中检索数据并将其绑定到相应的文本框中。但是当用户没有点击next并使用导航栏选项转到另一个页面时,输入的数据会丢失。
但即使用户没有点击next 并转到另一个页面并返回该页面,我也希望数据存在,以便他可以继续填写他离开的表格。
我在 Angularjs 中做这个项目。
我不知道如何做到这一点,请有人让我走上正确的轨道。
angular.module('userDetails').factory('sessionService', [function () {
return{
getGlobal: function(key){
var data = localStorage.getItem("user."+ key);
if(data){
return JSON.parse(data).data;
}
return null;
},
get : function(key){
var data = localStorage.getItem("user."+ key);
if(data){
return JSON.parse(data).data;
}
return null;
},
set: function(key, value){
localStorage.setItem("user."+key, JSON.stringify({data: value}));
}
};
}]);
在我的html中
<button ng-click=savePD(PD)> Next </button>
当点击个人详细信息表单中的next 按钮时:
$scope.savePD = function(PD){
sessionService.set("personalData",PD);
$location.path('/educationData');
}
因此,当单击next 按钮时,模型值将传递给函数,然后存储在本地。
所以我需要知道什么时候我不点击下一步并转到另一个页面我如何在第一个表单中保留当前输入的值。
【问题讨论】:
-
您是否使用角度路由器导航到下一页。?如果是这样,您可以使用
$location.path()来决定在表单中加载哪个日期 -
所有表单是否来自同一个控制器?
-
@Sravan 每个表单没有不同的控制器
-
好的,请添加一些代码,最小化您为存储本地存储而实现的逻辑。
标签: javascript html angularjs forms