【发布时间】:2016-07-27 18:05:42
【问题描述】:
我目前正在尝试通过电子邮件在 Angular 和 Meteor 中查找用户,并且在我的客户端代码上我正在使用 Accounts.findUserByEmail()。
在客户端上,我使用Meteor.call() 异步调用它。问题是我只能返回 console.log() 或 alert() 一个值,但我不能,例如 return true 或 return false。我的客户没有读到它?
这是我的服务器端方法的预览:
checkUserByEmail : function (email) {
this.unblock();
check(email, Match.Any);
console.log('Checking to see if ', email, 'is registered')
var userEmail = Accounts.findUserByEmail(email);
if(userEmail){
console.log(userEmail + ' Email account is registered')
return true
}
else{
console.log(userEmail + ' Email account is not registered' )
return false
}
return userEmail;
}
然后在我的客户端某处:
$scope.doesUserEmailExist = function(judge){
Meteor.call('checkUserByEmail', judge.email , function(err, res){
if(res){
console.log(judge.email + ' exists as a registered email!');
alert('Judge is Valid')
return true;
}
else if(err){
console.log('Error ',judge.email , 'does not exist!');
return false;
}
})
}
我正在使用 $scope.doesUserEmailExist 通过在输入表单中输入电子邮件来查看用户是否已注册到我的应用程序。当我输入一个有效的电子邮件地址时,我得到一个 console.log 值,但我无法读取任何 return 值?
我希望我可以使用$scope.doesUserEmailExist(email) === true,但我没有成功运行它。
【问题讨论】:
标签: angularjs meteor meteor-accounts angular-meteor