这是我的meteor模板:
{{#each p}}
<div class="cpl">
<div class="chat-post">
<li class="post">
<div class="nm" id={{_id}}>
<a>{{username}}</a>
</div>
<div class="con">{{content}}</div>
<div class="cnm">
<div class="t">{{time}}</div>
<div class="m" id="cm">
<a>message </a>
</div>
</div>
</li>
</div></div>
{{/each}}
//PF 模板
<template name="pf">
<form id="post-box">
<textarea id="new" required></textarea>
<button type="submit">Post</button>
</form>
</template>
//这是我的 PF 和 PC 助手和事件处理程序,集合名称 ROST
Template.pc.helpers({
p: function(){
return Rost.find({}, {sort:{created:-1}});
}
});
Template.pf.events({
'submit form': function(event){
event.preventDefault();
var content= document.getElementById('new').value;
var date= new Date(),
h=(date.getHours()<10?'0':'') +date.getHours(),
m=(date.getMinutes()<10?'0':'')+date.getMinutes();
var time=h+':'+m;
var username= Meteor.user().username;
Rost.insert({
content: content,
created:date,
time:time,
username: username
});
event.target.reset();
}
});
我使用meteor和mongo作为数据库,其中{{username}}
,{{content}}
和{{time}}
是对象的变量。
如何使用 JavaScript 访问 {{username}}
?
最佳答案
在辅助函数中,您应该已经可以通过 this 上下文变量或 Template.instance().data 访问此数据。您的事件处理程序应如下所示:
'click cssSelector'(event,instance) {
event.preventDefault();
}
正如您所看到的,第二个参数是模板实例,因此您可以使用instance.data访问数据,或者使用event.currentTarget来确定单击的元素并从那里开始。请发布您的帮助程序或事件处理代码,以便我们可以了解您正在尝试执行的操作以及遇到的问题。
关于javascript - 使用js访问 meteor 模板的DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39662983/