Angularjs -在重定向期间保留输入的表单数据,以便用户在返回该表单时继续
Angularjs - Retain the entered form data during redirection for the user to continue when coming back to that form
我正在创建一个简单的用户数据收集项目,该项目要求用户以多种形式输入数据。
我已经为每个表单创建了单独的html页面。
用户可以输入个人信息、教育信息等。
当用户输入个人详细信息并单击next
时,我将数据存储在localstorage中,最后所有数据都发送到db。
当用户单击next
并再次进入同一页面时,我从localstorage检索数据并将其绑定到相应的文本框中。但是,当用户不点击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
按钮时,模型值被传递给函数,然后存储在本地。
所以我需要知道,当我不点击下一步,去到另一个页面,我如何保留当前输入的值在第一个表单。
如果你不想让你的数据在页面导航中丢失,你可以使用$rootscope
。
rootscope
中的数据可以通过任意控制器just inject the rootscope in the controller
访问。
根作用域应该在app.run
函数中初始化。
angular.module('myApp', [])
.run(function($rootScope) {
$rootScope.form_data = {}
})
.controller('myCtrl', function($scope, $rootScope) {
})
.controller('myCtrl2', function($scope, $rootScope) {
});
form_data
可以在任何控制器中以任何形式作为散列。
1,
<div ng-controller="myCtrl">
<form>
First Name:<br>
<input type="text" ng-model="form_data.firstName"><br>
Last Name:<br>
<input type="text" ng-model="form_data.lastName">
<br><br>
<button ng-click="next()">Next</button>
</form>
</div>
2,
<div ng-controller="myCtrl2">
<form>
Profile:<br>
<input type="text" ng-model="form_data.profile"><br>
Age:<br>
<input type="number" ng-model="form_data.age">
<br><br>
<button ng-click="next()">Next</button>
</form>
</div>
现在您可以从最后一个控制器的rootscope中检索值并将其发送到db。
.controller('myCtrl3', function($scope, $rootScope) {
var data = $rootScope.form_data
// call http using a service or here itself and send data as a parameter
});
相关文章:
- 从表单中获取用户输入执行计算(操作顺序)并输出回该表单
- 我确实有一个表单,如果用户输入了输入,它应该检查否定或空的输入框,并抛出一条警告消息
- 如果用户没有更改,则表单值为空
- 谷歌表单-根据分配给谷歌应用程序的工作为商业用户预先填充多项选择列表
- 如何在用户提交表单之前访问text_field的内容
- HTML.如何检查用户是否在表单中输入了文本
- 阻止用户在Netsuite中使用标准/未自定义的表单
- 如何停止javascript的执行并允许用户保存表单
- 如何根据用户输入的数字动态地向表单添加文本字段
- 如何使用 HTML 中的表单框获取用户输入
- 流星 - 添加带有熨斗的路由后无法提交用户.路由器到登录和注册表单
- 纯javascript的进度图像加载程序仅当用户单击提交html表单时
- Jquery:如何处理"停止/取消”;用户停止表单提交时的事件
- 如何从HTML表单中获取用户输入并将其存储在现有的JavaScript数组中
- 临时存储用户表单数据的最佳方式,用于表单重新提交
- 使用php提交表单,并使用ajax向用户提供响应
- 用户提交表单时按钮发生更改
- 当处理请求发布ajax时,如何禁用该表单中的表单(用户无法检查、填写文本、选择下拉列表等)
- 在我的javascript函数中,我试图从表单用户输入到我创建的函数并输出答案的值
- 重定向表单用户提交时,基于无线电选择仅