繁体   English   中英

AngularJS ngKeyUp函数的值未定义

[英]AngularJS ngKeyUp function the value is undefined

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;
                            });
                        }

此输入在模态内部,当模态触发上方的角度在该模态控制器内部时,它可以按预期工作, 但是当我开始在输入字段中键入console.log(text); 输出undefined

$scope.attempt = {}这是在我上面的$scope.attempt = {}脚本之前,我只是好奇为什么它不起作用。

您是否真的想在用户每次按键时都拨打服务器电话? 您是否不希望有至少〜200ms的debounce

尝试这样做:

<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会将模型设置为undefined 因此,angular实际上会帮您一个忙,因为除非模型包含有效的电子邮件地址,否则您可能不希望对该服务器进行调用,对吗? 因此,只需更改您的“检查”功能,使其首先检查该值是否undefined ,以及是否未对服务器进行调用并将$scope.user.emailvalid设置为false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM