2017-06-06 31 views
0

在meteor.js中,我無法連接HTML和JS。按鈕點擊沒有反應,我不明白爲什麼不。因此,服務器中的流星方法不會被調用,也不會發送電子郵件。 HTML:流星模板不會引用事件或方法

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: "[email protected]", 
     to:Meteor.toAddr, 
     subject : subj, 
     text: text 
     }) 
    } 
    }) 
} 

的問題是,當我按下按鈕不會有任何反應

<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> 

此代碼在客戶端上運行。控制檯或cmd提示符中沒有任何內容出現。我不知道這是我打電話給我的事件的方式,還是它是電子郵件功能。

+0

至少在客戶端的處理程序中添加一個console.log()(或設置一個斷點)以查看您是否進入該處理器。分而治之! – zim

回答

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) 
    } 
}) 
+0

謝謝,這應該有效,雖然這仍然沒有方法互相呼叫,我不知道爲什麼 –