Meteor模板不会引用事件或方法

时间:2017-06-06 23:46:38

标签: javascript email templates meteor

在meteor.js中,我无法连接HTML和JS。按钮点击没有任何反应,我不明白为什么不。因此,不会调用服务器中的meteor方法,也不会发送电子邮件。 HTML:

<template name='confirmation'>
    <div class = "container" >
    <form role = "form" id = "email-form">
        <div class = "form-group">
            <label for="inputEmail">Email address</label>
            <input type= "email" class = "form-control" id = "inputEmail" placeholder = "Enter email">
        </div>
        <button type = "submit" class = "btn btn-primary"> Send mail</button>
    </form>
    </div>
</template>

此代码在客户端上运行:

 Template.confirmation.events({
  'submit #confirmation-form': function (e,t) {
    e.preventDefault();
    var toAddr=t.find('#inputEmail').value;
    var subject = ("Booked");
    var body = ("Thanks for booking")
    Meteor.call('sendEmail', toAddr, subj, text)
  }
  })

此代码在服务器上运行:

    if (Meteor.isServer){
  Meteor.startup(function(){

  process.env.MAIL_URL = "mailgun"
  Accounts.config({
    sendVerificationEmail: true
  })

  })
  Meteor.methods({
    'sendEmail': function(toAddr,subj,text){
      this.unblock();
      Email.Send({
        from: "booking@timesharewebapp.com",
        to:Meteor.toAddr,
        subject : subj,
        text: text
      })
    }
  })
}

问题是按下按钮时没有任何反应。控制台或cmd提示符中没有任何内容出现。我不知道这是我调用我的活动的方式,还是它是电子邮件功能。

1 个答案:

答案 0 :(得分:0)

您在活动中使用了错误的选择器。请尝试以下代码。

Template.confirmation.events({
  'submit #email-form': function (e,t) {
    e.preventDefault();
    var toAddr=t.find('#inputEmail').value;
    var subject = ("Booked");
    var body = ("Thanks for booking")
    Meteor.call('sendEmail', toAddr, subj, text)
  }
})