我正在开发一个用于学习目的的电子商务网站。
HTML:
<div class="container">
<form class="log-in-form" ng-controller="ControllerLogin">
<div class="form-group">
<label for="loginEmail">Email address</label>
<input type="email" class="form-control" id="loginEmail" placeholder="Email" ng-model="email">
</div>
<div class="form-group">
<label for="loginPass">Password</label>
<input type="password" class="form-control" id="loginPass" placeholder="Password" ng-model="password">
</div>
<button class="btn btn-default" ng-click="authenticate()">Login</button>
</form>
</div>
Angular javascript
app.controller('ControllerLogin', ['$scope', '$http', 'ServiceLogin', function ($scope, $http, ServiceLogin) {
$scope.authenticate = function () {
console.log($scope.email);
ServiceLogin.auth($scope.email, $scope.password)
.success(function (data) {
alert(data);
});
}
}]);
每次我在console.log上使用$ scope.email或密码。它抛出一个未定义的错误。我刚刚开始角度,我不知道为什么没有得到模型,我认为我的代码是正确的。你能给予的任何帮助我都会感激不尽。
答案 0 :(得分:0)
来自Angular网站:
请注意,novalidate用于禁用浏览器的本机表单验证。
除非传递输入字段的验证,否则不会设置ngModel的值。例如:电子邮件类型的输入必须具有user @ domain形式的值。
参考:https://docs.angularjs.org/guide/forms
因此它可能是空白的原因是它不是有效的电子邮件。
您可以查看他们的演示文稿了解电子邮件类型并查看其实际效果。
我建议添加:
{{email}}
<br>
{{password}}
在你的html中控制器的HTML范围内,用于你自己的调试。
祝你好运。