【问题标题】:template.$(selector) not working Meteortemplate.$(selector) 不工作流星
【发布时间】:2015-06-26 13:41:49
【问题描述】:

我刚刚发现将 DOM 搜索限制在当前模板而不是 document 是一个很好的模式,所以我开始将所有 document.querySelector() 替换为 template.find() 和 jquery $(selector) 替换为 template.$(selector)。 内部事件一切正常,但在这段代码 (onRendered) 中它不起作用,我在控制台中得到:TypeError: undefined is not an object (evaluating 'template.$')

Template.icons.onRendered(function () {
    template.$('.demo-default').tooltipster({
        offsetY: 2,
         theme: 'tooltipster-shadow'
    })
});

有人知道怎么回事吗?

【问题讨论】:

    标签: meteor


    【解决方案1】:

    onCreatedonRenderedonDestroyed等生命周期事件回调中,当前模板实例绑定this关键字。

    只需将template(顺便说一下,在此上下文中未定义)替换为this

    Template.icons.onRendered(function () {
      this.$('.demo-default').tooltipster({
        offsetY: 2,
        theme: 'tooltipster-shadow'
      })
    });
    

    【讨论】:

    • 你是对的,但问题是:我应该在哪里使用 template.$?内部助手?...
    • @PauloJaneiro 仅在我认为具有功能的事件中,例如Template.MyTemplate.events({ 'click .my-button': function (event, template) { ... }});。你可以使用内部助手 Template.instance() 代替。
    猜你喜欢
    • 2016-08-02
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 2023-03-05
    • 2011-07-24
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多