如何在更改AngularJS中的视图后保留表单的旧值

问题描述:

我有一些输入字段,例如单选按钮,文本框,下拉列表,由用户填写的文本字段以及单击按钮时的新视图页打开。现在在后退按钮上,我想显示用户较早选择或提供的那些旧值。如何在更改AngularJS中的视图后保留表单的旧值

我该如何在AngularJS中做到这一点?

+0

试试这个解决方案http://*.com/a/43700447/4116300 –

如果你有一个表单,那么你最有可能使用ng-model存储这些值。当你离开页面时,你可以使用这个'object',并在你的ng-route/ui-route中将它与状态参数一起传递,并在你回到页面时恢复它们。

或者,您可以使用服务来存储它然后检索它。虽然更好的方法可能是ng-route/ui-route方法。

编辑:阿龙曾这样评价,我应该已经有点更加积极,这里有一个例子:

状态1,UI路由器(config.routes.js为例):

.state('state_one', { 
    name: 'state1', 
    params: { 
    formData: {} 
    } 
}) 

您的形式将有NG-模型中,所以我们假设它被称为“formobj”,以关闭它为每个输入/ textarea的性质与这种命名PPC结构:

formobj.input1, formobj.input2 

当你离开状态1(你的表单页面)进入状态2页,你会做这样的事情在你的控制器:

$state.go('state_two', { formData: formobj }) 

所以我们传递“formobj”直接state_two,这就像state_one是像这样:

.state('state_two', { 
    name: 'state2', 
    params: { 
    formData: {} 
    } 
}) 

所以在控制器两个,访问formobj这是直截了当:

$stateParams.formData 

当你回到你原来的state_one在形式,你还是个合格然后你可以再次使用它作为模型(也就是你在移动到另一个页面/状态之前最初从表单获得的所有值)。即:

formobj = $stateParams.formData