【发布时间】:2014-11-01 16:41:32
【问题描述】:
当我想检查邮件是否已在数据库中注册时遇到了问题,但仅限于 blur 事件(我不希望它检查每个更改)。所以我写了一个指令,我可以在我的应用程序的其他地方重复使用。但问题是即使我仍然没有模糊,指令也会继续检查,这是我的 plnkr 供参考:http://plnkr.co/edit/eUPFxIc78Wkl4mCX6hrk?p=preview
这是我的指令代码:
app.directive('checkEmail', function(userService){
return{
restrict: "A",
require:'ngModel',
link: function( scope, ele, attrs, ctrl ){
ele.bind('blur', function(){
console.log("Run in blur!");
ctrl.$parsers.unshift(function( email ){
console.log("Email is ", email);
// Checking to see if the email has been already registered
if( ele.val() && userService.isDuplicateEmail(email) ){
ctrl.$setValidity('isDuplicatedEmail', true );
}else{
ctrl.$setValidity('isDuplicatedEmail', false );
}
});
})
}
}
})
抱歉,我是 Angular 新手,这个简单的任务已经让我发疯了。请看一下我的指令并告诉我我能做些什么来解决这个问题。提前致谢
【问题讨论】:
标签: angularjs unique blur directive