2014-02-22 105 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