在转到另一个表单并再次返回时,保留表单中的数据

时间:2015-03-27 03:16:37

标签: javascript angularjs forms ionic-framework

我有一个表单,我在其中包含了一些文本框和选择框。我正在使用离子框架和angularjs。填写此表单并在提交时转到另一页输入密码。所以我想回到之前的形式,我可以随时回过头来。但问题是我输入的数据已经消失。我必须重新完成表格。有没有办法来解决这个问题?感谢。

在使用下面的行提交时,我将进入密码表格

$state.go('app.transpass');

2 个答案:

答案 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);
});