我有一个表单,我在其中包含了一些文本框和选择框。我正在使用离子框架和angularjs。填写此表单并在提交时转到另一页输入密码。所以我想回到之前的形式,我可以随时回过头来。但问题是我输入的数据已经消失。我必须重新完成表格。有没有办法来解决这个问题?感谢。
在使用下面的行提交时,我将进入密码表格
$state.go('app.transpass');
答案 0 :(得分:1)
在你的JS中:
app.service("YourService", function() {
this.userName = "";
this.password = "";
});
app.controller("YourController", function($scope, YourService) {
$scope.YourService = YourService;
});
HTML中的:
<input type="text" ng-model="YourService.userName" />
<input type="password" ng-model="YourService.password" />
现在尝试使用路线切换页面,然后返回此页面。您将在文本框中显示数据。
有关angularjs服务的更多详细信息,请参阅this link.
答案 1 :(得分:0)
我不使用AngularJS,所以我将使用Javascript和jQuery。 如果Angular Service可以为您提供解决方案,那就去吧。
REF。 Clear all fields in a form upon going back with browser back button
Modern browsers implement something known as back-forward cache (BFCache). When you hit back/forward button the actual page is not reloaded (and the scripts are never re-run).
If you have to do something in case of user hitting back/forward keys -- listen for BFCache pageshow and pagehide events.
A pseudo jQuery example:
$(window).bind("pageshow", function() {
// update hidden input field
});
See more details for Gecko and WebKit implementations.
使用BFCache和sessionStorage,您可以
在表单页面上,
var input01 = $("#idName").val();
sessionStorage.input01 = input01;
当你回来的时候,
$(window).bind("pageshow", function(){
$("#idNAme").val(sessionSotrage.input01);
});