【问题标题】:DOM access of meteor templates using js使用js对流星模板的DOM访问
【发布时间】:2016-09-24 12:45:06
【问题描述】:

这是我的 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 作为DB,其中{{username}}{{content}}{{time}} 是对象的变量。 如何使用 JavaScript 访问{{username}}

【问题讨论】:

  • 你有很多方法可以做到这一点。您只想获取用户名的值吗? DOM 节点?以流星方式? jquery方式?香草js?
  • 我想要 n 个 dom 节点的值

标签: javascript jquery mongodb meteor


【解决方案1】:

在您的辅助函数中,您应该已经可以通过 this 上下文变量或 Template.instance().data 访问此数据。您的事件处理程序应如下所示:

'click cssSelector'(event,instance) {
    event.preventDefault();
}

如您所见,第二个参数是模板实例,因此您可以使用 instance.data 访问数据,或者使用 event.currentTarget 来确定被点击的元素并从那里开始。请发布您的助手或事件处理代码,以便我们可以看到您正在尝试做什么以及遇到问题。

【讨论】:

  • Template.pc.helpers({ p: function(){ return Rost.find({}, {sort:{created:-1}}); } }); Template.pf.events({ '提交表单': function(event){ event.preventDefault(); var content= document.getElementById('new').value; var date= new Date(), h=(date. getHours()
  • 我看不到你想做什么。当你从 pc 模板点击用户名时,我不知道你想用 pf 模板做什么。无论如何要从 pc 模板中读取用户名:Template.pc.events({'click .nm a'(event,template) {event.preventDefault(); alert($.trim($(event.currentTarget).text()));}})。请检查。
  • 它是一个群聊应用程序 ....我需要来自 pc 模板的 {{username}} 的值,以便我可以删除当前用户的“消息”链接[一个人不会向它发送消息self]并使当前用户的帖子浮动在另一边......为此我需要获得 {{username}} n 的值然后我必须比较如果用户名 == 当前用户..然后将链接“消息”的可见性更改为隐藏,并使该帖子浮动在另一侧
猜你喜欢
  • 2017-03-14
  • 1970-01-01
  • 2014-01-13
  • 1970-01-01
  • 1970-01-01
  • 2017-02-09
  • 2018-10-03
  • 2014-08-02
  • 2018-05-19
相关资源
最近更新 更多