html
<input class="input--style" type="email" name="email" ng-model="attempt.email" ng-keyup="check(attempt.email)" value="">
Angularjs
$scope.check = function(text){
console.log(text);
$http({
method: 'POST',
url: '/api/user/check/',
data: {'email': $scope.attempt.email},
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
}).success(function(data, status, headers, config) {
console.log(data);
$scope.user.emailvalid = data.email;
});
}
此输入位于模态内部,当模态触发时,上方的 Angular 位于模态 Controller 内部,它按预期工作但是当我开始在输入字段中输入 console.log (文本);
输出未定义
$scope.attempt = {}
这是在我上面的 Angular 脚本之前,我只是好奇为什么这不起作用。
最佳答案
您真的想在用户每次按键时调用服务器吗?您难道不希望去抖
至少~200ms吗?
尝试这样做:
<input class="input--style" type="email" name="email"
ng-model="attempt.email" ng-model-options="{ debounce: 200 }"
ng-change="check(attempt.email)" >
更新:
我忘记回答您原来的问题:您正在使用 input
type="email"
,因此除非它是有效的电子邮件 Angular ,否则会将模型设置为 未定义
。因此,Angular 实际上帮了你一个忙,因为除非模型包含有效的电子邮件地址,否则你可能不想对服务器进行调用,对吗?因此,只需更改您的“检查”函数,以便它首先检查该值是否为 undefined
,如果是,则不要调用服务器并设置 $scope.user。 emailvalid
更改为 false
。
关于javascript - AngularJS ngKeyUp 函数的值未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26577887/