2015-01-13 23 views
1

我想用Meter創建一個webapp。我有這個在client.js:兩個相同的keydown事件;只有一個工程

Template.messages.helpers({ 
    messages: function() { 
     return Messages.find({}, { sort: { time: -1}}); 
    } 

}) 

Template.chats.helpers({ 
    chats: function() { 
     return Chats.find({}, { sort: { time: -1}}); 
    } 

}) 

Template.input.events({ 
    "keydown input#message" : function (event) { 
     if (event.which == 13) { // 13 is the enter key event 
     if (Meteor.user()) 
      var name = Meteor.user().username; 
     else 
      var name = 'Anonymous'; 
     var message = document.getElementById('message'); 

     if (message.value != '') { 
      Messages.insert({ 
      name: name, 
      message: message.value, 
      time: Date.now(), 
      }); 

      document.getElementById('message').value = ''; 
      message.value = ''; 
     } 
     } 
    } 
}); 

Template.inputchat.events({ 
    "keydown inputchat#chatid" : function (event) { 
     if (event.which == 13) { // 13 is the enter key event 
      if (Meteor.user()) 
      var name = Meteor.user().username; 
      else 
      var name = 'Anonymous'; 
      var chat = document.getElementById('chatid'); 

      if (chat.value != '') { 
      Chats.insert({ 
       name: name, 
       title: chat.value, 
       time: Date.now(), 
      }); 

      document.getElementById('chatid').value = ''; 
      chat.value = ''; 
      } 
     } 
    } 
}); 

在我的HTML文件:

<template name="Index"> 
<body> 
    {{> input }} 
    {{> messages }} 
    {{> inputchat }} 
    {{> chats }} 
</body> 
</template> 
<template name="input"> 
    <p>Message: <input type="text" id="message"></p> 
</template> 

<template name="inputchat"> 
    <p>Chat name: <input type="text" id="chatid"></p> 
</template> 

<template name="messages"> 
    {{#each messages}} 
    <strong>{{name}}:</strong> {{message}}<br> 
    {{/each}} 
</template> 

<template name="chats"> 
    {{#each chats}} 
    <strong>{{name}}:</strong> {{chat}}<br> 
    {{/each}} 
</template> 

最後,在models.js:

Messages = new Mongo.Collection('messages'); 
Chats = new Mongo.Collection('chats'); 

當我輸入一些東西並點擊進入在{{>輸入}}上,一切工作正常。該消息被添加到集合和模板,並且輸入框變空。

我一直在尋找相同的東西,當輸入和擊中inputchat輸入。然而,沒有任何反應。謝謝。

回答

1

首先解決方法嘗試

Template.input.events({ 
     "keydown #message" : function (event) { 
     } 
    }) 

使用IDS

第二種解決

同時更換"keydown inpuchat"只是"keydown input#chatid

+0

現在我不能輸入類型anythong和inputchat是相同...似乎我不是正確地「引用」inputchat,因爲這些更改不會影響它嗎? –

+0

使用ids'Template.input.events({0 {0}}}}}我的意思是刪除'輸入'字只是使用'#idInput' – Ethaan

+0

工作,謝謝!你可以精心爲什麼? –

相關問題