基本上,我使用Jquery验证包作为在Meteor上创建和注册帐户时向用户发出错误警告的方法,因为样板界面在我的情况下不起作用。
无论如何,当用户尝试注册帐户时,我在客户端上根本没有回复。用户只是创建时没有消息或重定向,就像它应该有的那样。
以下是特定代码:
Template.createAccount.onRendered(function(){
var validator = $('.register').validate({
submitHandler: function(){
user = {
email: document.getElementById("email").value,
password: document.getElementById("password").value
};
Accounts.createUser({
email: user.email,
password: user.password,
function(error){
if(error){
if(error.reason == "Email already exists."){
validator.showErrors({
email: "The email belongs to a registered user."
});
}
} else{
console.log("Account successfully created.");
Router.go("starter");
}
}
});
}
});
})
我使用相同的代码逻辑进行帐户登录,唯一的例外是不同的流星帐户功能(登录Meteor.loginWithPassword()
和帐户创建Accounts.createUser()
。
根本没有响应,因此可能必须对回调函数执行某些操作,因为已创建用户帐户,但客户端上未显示任何消息。
答案 0 :(得分:2)
当它应该是一个单独的参数时,您将回调作为选项对象的一部分包括在内。看起来应该更像这样:
Accounts.createUser({
email: user.email,
password: user.password
}, function(error){
if(error){
if(error.reason == "Email already exists."){
validator.showErrors({
email: "The email belongs to a registered user."
});
}
} else{
console.log("Account successfully created.");
Router.go("starter");
}
});