Templates 访问调用帮助程序的模板实例的DOM表示形式

Templates 访问调用帮助程序的模板实例的DOM表示形式,templates,meteor,Templates,Meteor,我试图访问与调用帮助函数的特定模板实例相对应的DOM元素。当我阅读Meteor文档时,Template.instance应该返回调用帮助程序的模板实例对象,类似Template.instance.$的内容将允许我获取该实例中的DOM元素 但是,以下代码和类似变体不适用于我: *HTML* 当我做以下事情时: if (some Session logic) { console.log(Template.instance()) } 我让助手正确记录多个版本的: Blaze.Template

我试图访问与调用帮助函数的特定模板实例相对应的DOM元素。当我阅读Meteor文档时,Template.instance应该返回调用帮助程序的模板实例对象,类似Template.instance.$的内容将允许我获取该实例中的DOM元素

但是,以下代码和类似变体不适用于我:

*HTML*

当我做以下事情时:

if (some Session logic) {
    console.log(Template.instance())
}
我让助手正确记录多个版本的:

Blaze.TemplateInstance{view:Blaze.view,数据:7, 第一个节点:div.small-12.medium-12.large-6.columns.empty.active-container, lastNode:div.small-12.medium-12.large-6.columns.empty.active-container,$:function…}

对于数据:值适当地从1到12,但在其他方面似乎是相同的

我如何才能使用模板方法,如template.$或template.find

编辑:

虽然不是一个完美的解决方案,但我确实通过使用Template.currentData并在输入的每个实例上设置标识符来解决了其中的一些问题

Template.create_form.helpers(
  # Create 12 input containers
  inputContainer: () ->
    [0..11]
然后:

Template.input_container.helpers(

isActive: () ->
    # Get which template instance we are working with, will return the number 0-11 that was used to create it
    current = Template.currentData()

    # Now I can do $(".input-container").eq(current) to grab the correct DOM element


但是需要使用这么多jQuery似乎有点脏。

我不确定我是否正确地解释了这个问题,但是如果您试图访问页面上的另一个DOM元素,我可以使用jQuery选择器

例如,给定

<input type="textfield" id="initials" value=" ">

你是说Template.instance.$'.empty'.length>0吗?在javascript中,空数组不被认为是伪值。对不起,我输入错了。我想检查的是类似Template.instance.$'div'.hasClass'empty'
Template.input_container.helpers(

isActive: () ->
    # Get which template instance we are working with, will return the number 0-11 that was used to create it
    current = Template.currentData()

    # Now I can do $(".input-container").eq(current) to grab the correct DOM element
<input type="textfield" id="initials" value=" ">
<template name="demo">
    <input type="button" div id="s0">
</template>
Template.demo.events({
   'click .cell': function(event, template) {
        if ($('#initials').val().trim().length > 0) {
           console.log($('#initials').val().trim() + ' - you clicked button '+$(event.target).attr('id'));
    }
},