meteor:在创建的用户上显示警报

时间:2015-03-31 16:45:27

标签: meteor user-accounts

我想向用户显示以下消息:"我已发送电子邮件以激活您的帐户"。

我不能,因为当用户创建时我没有找到钩子。

你知道某种方法吗?

我目前会永久显示一条消息,但我不想这样做。我只想在用户被烧毁时展示一次。

2 个答案:

答案 0 :(得分:1)

这里有2个选项,如果您在客户端创建用户,只需使用

Accounts.createUser({email: email, password: password}, function(err) {
 if(!err){
   alert(""I have sent a email to activate your account")
  }
});

或者如果您是从方法创建用户,它应该是这样的。

//Server.js
    Meter.method({
     createUser:function(username,email,password){
       //create user logic.
      }
    })

在客户端上看起来应该是这样的。

Meteor.call('createUser',username,email,password,function(err,result){
  if(!err){
   alert(""I have sent a email to activate your account")
  }
});

在这两种情况下,我们使用一个额外的参数,名为callback这个函数,接受其他2个参数err,result,所以如果创建帐户时没有错误,警告应该是触发

答案 1 :(得分:-1)

您应该能够在客户端上的createUser()回调中添加警报。假设您有类似于提交用于创建用户的表单,那么您可以...

Template.myTemplate.events({
  'submit #new-user-form': function(event) { 
    // These next few lines will depend on what your template looks like and what data you require on login
    // Here I've assumed just username and pw in appropriately-named inputs on your page
    var email = $('#email-input').val();
    var password = $('#password-input').val();
    event.preventDefault();

    Accounts.createUser({email: email, password: password}, function(error) { 
      if (error) { alert("There was an error!"); }
      else { alert("I have sent you an email to verify your account"); }
    });
  }
});     

如果要在安装accounts-ui的情况下完成此行为,the documentation不会显示您可以挂钩的任何内容。但是,你可以这样手动完成:

Template.myTemplate.events({
  'click .login-form-create-account #login-buttons-password': function() { 
    alert("I sent you an email to verify your account");
  }
});     

不幸的是,即使未成功创建用户,仍然会触发。