Javascript 尝试在meteor中创建回复评论功能
我正在尝试做一个回复评论选项,目前我有一个带有文本区域的输入字段,提交时会在屏幕上打印姓名和评论。现在,我已经创建了第二个输入和文本区域,我希望稍后也将其打印到屏幕上,理想情况下,只要点击屏幕上的名称和注释旁边的回复按钮,输入和文本区域就会弹出。但目前我只想在第二个输入和文本区域开始工作,以便在屏幕上打印任何内容。我基本上复制了前面的代码,只是更改了变量和函数名,在它们后面添加了一个1。现在它不起作用了,它在我在主体中添加Javascript 尝试在meteor中创建回复评论功能,javascript,meteor,Javascript,Meteor,我正在尝试做一个回复评论选项,目前我有一个带有文本区域的输入字段,提交时会在屏幕上打印姓名和评论。现在,我已经创建了第二个输入和文本区域,我希望稍后也将其打印到屏幕上,理想情况下,只要点击屏幕上的名称和注释旁边的回复按钮,输入和文本区域就会弹出。但目前我只想在第二个输入和文本区域开始工作,以便在屏幕上打印任何内容。我基本上复制了前面的代码,只是更改了变量和函数名,在它们后面添加了一个1。现在它不起作用了,它在我在主体中添加{{>message1}}的地方中断了。页面上甚至没有显示任何内容。这里是
{{>message1}}
的地方中断了。页面上甚至没有显示任何内容。这里是一个链接到现场
这是我正在使用的代码
HTML
<head>
<title>tutorial</title>
</head>
<body>
{{> messages}}
{{> entry}}
{{> entry1}}
</body>
<template name="messages">
{{#each messages}}
<!--echo of message template-->
{{> message}}
{{/each}}
</template>
<template name="message">
<p><strong>{{name}}:</strong>{{message}}</p>
</template>
<template name="entry">
<p><input type="text" id="name" placeholder="your name"></p>
<p><textarea type="text" id="messageBox" placeholder="your message"></textarea></p>
<p><input type="button" id="submit" value="submit"></p>
</template>
<template name="messages1">
{{#each messages1}}
<!--echo of message template-->
{{> message1}}
<a href="#">reply</a>
{{/each}}
</template>
<template name="message1">
<p><strong>{{name}}:</strong>{{message1}}</p>
</template>
<template name="entry1">
<p><input type="text" id="name1" placeholder="your name"></p>
<p><textarea type="text" id="messageBox1" placeholder="your message"></textarea></p>
<input type="button" id="submit1" value="submit">
</p>
</template>
您应该包括
{{messages1}}
,而不是{{message1}}
,
您应该将事件作为entry1
上的函数调用,而不是entry
:
Template.entry1.events({'click #submit1' : function() {
var nameEntry1 = document.getElementById('name1');
if(nameEntry1.value != ""){
var ts = Date.now() / 1000;
Messages1.insert({name: nameEntry1.value, message1: $('#messageBox1').val(), time: ts});
}
}
});
如果您将“messages1”重命名为“comments”,将“message1”重命名为“comment”,将“entry1”重命名为“enterComment”等等,则会更加清晰
<body>
{{> messages}}
{{> entry}}
{{> enterComment}}
{{> comments}}
</body>
{{>消息}
{{>条目}
{{>enterComment}
{{>注释}
然后JS变成:Template.enterComment.events({…})
添加{{>message1}时,您的web控制台中是否存在JS错误?如果是这样的话,你能把它们放在你的模版信息中吗?我想你是说,
{{messages1}}
而不是{{message1}}
@Akshat我的意思是说messages1我添加了上面的控制台错误。您没有使用名为messages1的集合
使用messages1=new Meteor.collection('messages1')将其添加到顶部
@Akshat修复了控制台错误,但是名称和消息仍然没有打印到页面上。非常感谢您的帮助。
<body>
{{> messages}}
{{> entry}}
{{> enterComment}}
{{> comments}}
</body>