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');
하는 입력 {{> input}}에 모든 것이 잘 작동합니다. 메시지가 콜렉션 및 템플리트에 추가되고 입력 상자가 비게됩니다.
나는 inputchat에서 타이핑과 타격을 할 때 똑같은 것을 찾고있었습니다. 그러나 아무 일도 일어나지 않습니다. 감사.
내가 입력에 anythong 입력 할 수 없습니다하는
"keydown inpuchat"
교체 입력 찿널은입니다. 같은 ... 그것은 내가 변경 사항을 영향을 미치지 않습니다 이후 inputchat을 "referecing"아니에요? –ids'Template.input.events ({ "keydown #idInput": function() {} })을 사용하면'# idInput'을 사용하는'input' 단어를 제거하는 것입니다. – Ethaan
감사합니다! 왜 그럴 수 있니? –