【发布时间】:2015-05-06 18:41:45
【问题描述】:
无效电子邮件输入的模型值始终未定义。我希望能够检查用户是否输入了任何文本(即使它还不是有效的电子邮件地址)。
有关实施的更多详细信息,请查看 plnkr:http://plnkr.co/edit/qV2eqGFhPvZSZKexDVF2?p=preview
HTML:
<body ng-controller="MainCtrl">
<form>
<div>
<label for="email">Email address</label>
<input ng-keyup="keyUp()" ng-change="changed()" type="email" name="email" id="email" ng-model='user.email'/>
</div>
</form>
</body>
控制器:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.user = {};
$scope.$watch('user.email', function (val){
console.log("Watch: "+$scope.user.email);
});
$scope.changed = function(){
console.log("Changed: "+$scope.user.email);
}
$scope.keyUp = function(){
console.log("KeyUp: "+$scope.user.email);
}
});
干杯。
【问题讨论】:
-
这是设计使然,因为输入类型是“电子邮件”。为什么要检查无效电子邮件?
-
在你自己的指令中使用 $parser 或 $formatter 会给你这个值。
标签: javascript angularjs angularjs-ng-change angularjs-watch