2014-02-22 104 views
0

我有一個html用這個模板:流星模板事件功能錯誤

<template name="entryfield"> 
    <input type="text" id="name" placeholder="Name" /> <input type="text" id="message" placeholder="Your Message" /><br> 
    <input type="button" class="plusbutt" value="+"/><input type="button" class="minusbutt" value="-"/> 
</template> 

,我要聲明的2個按鈕事件:

Template.entryfield.events = { 
'click .plusbutt': function() { 
     // Submit the form 
     var name = document.getElementById('name'); 
     var mood = document.getElementById('mood'); 
     var message = document.getElementById('message'); 

     if(name.value != '' && message.value != ''){ 

     Messages.insert({ 
      name: name.value, 
      mood: '+', 
      message: message.value, 
      time: Date.now() 
     }); 

     name.value = ''; 
     message.value = ''; 
    } 
    } 
} 

'click .minusbutt': function() { 
     // Submit the form 
     var name = document.getElementById('name'); 
     var mood = document.getElementById('mood'); 
     var message = document.getElementById('message'); 

     if(name.value != '' && message.value != ''){ 

     Messages.insert({ 
      name: name.value, 
      mood: '-', 
      message: message.value, 
      time: Date.now() 
     }); 

     name.value = ''; 
     message.value = ''; 
    } 
    } 

但我有錯誤:

chat.js:58:19: Unexpected token : 

58行是第二個事件聲明的開始。但是當我完全拿出第二場比賽時,一切都很順利。我的問題是人們如何在相同的模板事件中聲明多個函數?我在任何地方都能看到它,但我無法得到它的工作。謝謝!

我在哪裏可以找到模板事件的參考?學習Meteor的問題是他們的功能來自於各地,一些來自MongoDB,一些來自Handlebar,另一些來自JavaScripts,這使得初學者很難接受。

回答

1

你的事件聲明語法是錯誤的,要小心!

一定要檢查流星文檔,一切都詳細:http://docs.meteor.com/#template_events

它應該是這樣的:

Template.entryfield.events({ 
    "click .plusbutt":function(){ 
     /* ... */ 
    }, 
    "click .minusbutt":function(){ 
     /* ... */ 
    } 
}); 

Template.myTemplate.events是一個函數,它接受一個對象作爲參數。 對象的每個成員應該是一個鍵/值對,關鍵是事件聲明和值相應的處理程序。

+0

那麼我們什麼時候使用'Template.entryfield.events = {/*....*/}'? – sooon

+1

@sooon你不這樣做,那隻會用一個對象覆蓋'events'函數,你不能再次調用它來添加事件。另外請注意,您可以多次調用'events'函數來繼續添加更多事件處理程序。 – sbking

+0

經過大量的重複閱讀和思考之後,我想我現在就明白了。我做錯了什麼是我定義了'模板幫助函數',它不是'events'本身。現在我懂了。 – sooon