Javascript 使用Angular JS获取表单值
使用Angular JS从表单获取值时遇到问题。验证工作得很好,但我在控制器或提交功能上出了问题 以下是我当前的代码: HTMLJavascript 使用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
<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);
};
});