我正在用MEAN编写一个Web应用程序,我不明白使用Angular验证表单的方法,并将信息传递给Node注册或登录用户。
这是我的玉码
html(ng-app="modulo")
...
body#page-top.index(ng-controller="mainController")
...
div
a.btn.btn-default(ng-click="ShowForm()")
span.fa.fa-user
| Local Login
a.btn.btn-default(href='/signup')
span.fa.fa-user
| Local Signup
|
a.btn.btn-primary(href='/auth/facebook')
span.fa.fa-facebook
| Facebook
|
a.btn.btn-danger(href='/auth/google')
span.fa.fa-google-plus
| Google+
form(name="submit_form" ng-submit="submit()" ng-show="formVisibility")
div.form-group
label Email
input(type="text" name="email").form-control
div.form-group
label Password
input(type="password" name="password").form-control
button(type="submit").btn.btn-warning.btn-lg
| Login
我的Angular控制器
var modulo = angular.module('modulo', []);
modulo.controller('mainController', ['$scope', function($scope){
$scope.message = 'Hello World!'
$scope.formVisibility = false;
$scope.ShowForm = function(){
$scope.formVisibility = true;
}
$scope.submit = function(){
if($scope.submit_form.$valid)
alert("Nuestro formulario es guay");
}}]);
当我按下提交按钮时,应用程序会显示警报,但节点不起作用,因此我无法访问网络。
我必须添加什么才能进行本地登录?
答案 0 :(得分:1)
由于我们通常使用Angular创建单页应用,因此我们不希望浏览器自动提交表单。如果是这样,它将导致整页加载服务器响应,"打破"单页应用功能。
您必须编写代码以提交表单及其数据(使用$http
或$resource
)。我假设您的submit()
函数被调用,因此下一步是POST(或其他)数据:
$scope.submit = function() {
if ($scope.submit_form.$valid) {
// inject $http into your controller
$http.post('/some/url', myFormData);
}
}
PS:如果您希望浏览器提交表单,只需将action
属性添加到<form>
标记即可。 Angular会看到并让浏览器提交表单。