【发布时间】:2016-06-15 01:00:43
【问题描述】:
我有使用 ui.router 的多步 AngularJs 表单,见下边:
signup.config(function($stateProvider, $urlRouterProvider,$locationProvider) {
$stateProvider
// route to show our basic form (/form)
.state('signup', {
url: '/signup',
templateUrl: './stepOne.ejs',
controller: 'login'
})
// nested states
// each of these sections will have their own view
.state('signup.form', {
url: '/form',
templateUrl: './stepTwo.ejs'
})
.state('signup.interests', {
url: '/interests',
templateUrl: './stepThree.ejs'
})
$urlRouterProvider.otherwise('/signup/form');
});
您可以在提交表单之前执行多个步骤。每一步都有自己的看法。
最初我只有一个页面表单,我将表单提交到我的 API,如下所示:
<form name="myForm" action="/signup" method="POST">
以上对于单页表单效果很好但是这不适用于多步骤表单。
原因我认为,当单击表单最后一步的提交按钮时,提交按钮无法访问之前表单步骤/页面中的用户输入。并且服务器/API 需要 POST 请求中的所有用户输入,因此它被拒绝。
所以我的问题是如何使用<form action="/signup" method="POST"> 提交 AngularJS 多步 (ui.router) 表单
我已经尝试过通过 Angular $http POST 函数发布表单,但这不允许我使用 passport.js 在服务器端重定向用户。您可以在我的SO question 上查看有关该问题的详细信息
任何帮助将不胜感激。
【问题讨论】:
-
您如何存储表单数据?
-
您可以更新模型并将其保存在 localStorage 或其他东西中,然后在提交时检索它。然后删除存储:)
-
@SatejS 你的意思是提交前存储在后端还是前端?
-
@Alok 感谢您的评论。这是一种安全的好方法吗?
-
提交之前的前端,我问的原因是因为,是每一步推送数据的表单,等等..
标签: javascript angularjs node.js forms angular-ui-router