表格没有提交

时间:2015-03-23 09:36:05

标签: angularjs node.js html5

我正在用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");
    }}]);

当我按下提交按钮时,应用程序会显示警报,但节点不起作用,因此我无法访问网络。

我必须添加什么才能进行本地登录?

1 个答案:

答案 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会看到并让浏览器提交表单。