Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Angular JS获取表单值_Javascript_Jquery_Html_Angularjs - Fatal编程技术网

Javascript 使用Angular JS获取表单值

Javascript 使用Angular JS获取表单值,javascript,jquery,html,angularjs,Javascript,Jquery,Html,Angularjs,使用Angular JS从表单获取值时遇到问题。验证工作得很好,但我在控制器或提交功能上出了问题 以下是我当前的代码: HTML <div ng-controller="LoginController as loginCtrl" > <h1>LOGIN</h1> <form name="loginForm" ng-submit="loginForm.$valid && loginCtrl.loginCheck()" novali

使用Angular JS从表单获取值时遇到问题。验证工作得很好,但我在控制器或提交功能上出了问题

以下是我当前的代码:

HTML

<div ng-controller="LoginController as loginCtrl" >
  <h1>LOGIN</h1>

  <form name="loginForm" ng-submit="loginForm.$valid && loginCtrl.loginCheck()" novalidate>
    <input type="email" name="email" placeholder="Email" ng-model="login.email" required />
    <input type="password" name="password" placeholder="Password" ng-model="login.password" ng-minlength="8" required />
    <button type="submit" class="right">LOGIN</button>
  </form>

</div>
目前,我只是希望将表单结果记录在控制台中,但出现以下错误:

ReferenceError: login is not defined...

您需要注入
$scope
服务,而不是使用

而是这样:

app.controller('LoginController', function($scope){
  $scope.login = {};

  $scope.loginCheck = function(){
    console.log($scope.login.email);
  };

});
John Papa推荐了一种方法,您可以使用
this
创建控制器方法。然而,我个人确实看到了偏离标准的好处,但您想了解更多关于这种方法的信息,这篇文章对此进行了解释:


您没有
控制器的正确语法。正如另一个答案所示,$scope和controller as都不是“标准”。两者都有效

使用您的代码查看下面的示例,尽管我不确定您是否打算让submit按钮不调用方法。。。但这很容易扩展

HTML


这应该是
$scope.login.email
谢谢,但这似乎对我不起作用。我最初是通过Angular网站(实际上是在Code School上)学习视频教程的,该网站不使用$scope。在尝试了你的方法之后,我没有得到记录的结果,我只是在控制台中什么也没有得到。啊,我已经解决了。我还必须从表单元素的
loginCtrl.loginCheck()
中删除
loginCtrl
。谢谢
app.controller('LoginController', function($scope){
  $scope.login = {};

  $scope.loginCheck = function(){
    console.log($scope.login.email);
  };

});
<div ng-controller="LoginController as loginCtrl" >
  <h1>LOGIN</h1>

  <form name="loginForm" ng-submit="loginForm.$valid && loginCtrl.loginCheck()" novalidate>
    <input type="email" name="email" placeholder="Email" ng-model="loginCtrl.email" required />
    <input type="password" name="password" placeholder="Password" ng-model="loginCtrl.password" ng-minlength="8" required />
    <button type="submit" class="right">LOGIN</button>
  </form>

</div>
app.controller('LoginController', function(){
  var vm = this;
  vm.email = '';
  vm.loginCheck = function(){
    console.log(vm.email);
  };

});