Angularjs在控制器中引用表单,获取html元素

Angularjs referencing a form in a controller getting html element

本文关键字:获取 html 元素 表单 引用 控制器 Angularjs      更新时间:2023-09-26

我有一个名为"loginForm"的表单,它有一个控制器"loginController",它的方法"login"设置为表单的提交。在javascript的login方法中,如果我引用表单而不引用它的作用域;这样做"loginForm"而不是"$scope.loginForm";我得到一个引用的html元素,如果我检查窗口。我发现这是一个全局变量。我试图弄清楚这个变量是如何被创建和放置到全局范围内的。请点击下面的plnkr链接,看看我所指的例子。

http://plnkr.co/YY3ls7ele8uNpnhstG3X

h2控制器

(function(){
  angular.module('testApp',[])
    .controller('loginController',['$scope',function($scope){
      $scope.login = function(){
        console.debug(loginForm); //console shows html element
        console.debug(window.loginForm); //shows html element
      }  
    }]);
  })();

如果你使用的是form,那么你需要从视图传递它。

<form name="loginForm"  class="form-horizontal" ng-submit="login(loginForm)">

并在你的方法中获取它:-

$scope.login = function(loginForm){

或者使用ng-form="formName"来获取表单控制器实例作为作用域的一部分,但是在angular的1.2版本中有一个问题,ng-form不会触发ng-submit。