Templates 在Meteor模板事件处理程序中获取正确的数据上下文

Templates 在Meteor模板事件处理程序中获取正确的数据上下文,templates,events,meteor,Templates,Events,Meteor,我正在使用Meteor 1.3.1,我正在做一些实验来获取events listener块中的数据上下文,下面是我的代码: var objs=[ {a:“a1”,b:“b1”,是:正确}, {a:“a2”,b:“b2”}, {a:“a3”,b:“b3”,是:对},] Template.tt.helpers({ objs:objs }) Template.tt.events({ “click.b”(事件、模板){ console.log(Template.currentData().a);//

我正在使用Meteor 1.3.1,我正在做一些实验来获取events listener块中的数据上下文,下面是我的代码:


var objs=[
{a:“a1”,b:“b1”,是:正确},
{a:“a2”,b:“b2”},
{a:“a3”,b:“b3”,是:对},]
Template.tt.helpers({
objs:objs
})
Template.tt.events({
“click.b”(事件、模板){
console.log(Template.currentData().a);//-->未定义
console.log(template.data.a);//-->未定义
console.log(Template.parentData(0.a);//-->未定义
console.log(this);//-->窗口对象
} 
})

{{{#每个objs}
a={{a},b={{b}
{{#如果是}
b{{yes}
{{/if}
{{/每个}}

此问题的常见模式是创建嵌套模板并将事件模板附加到其中:

html:


此问题的常见模式是创建嵌套模板并将事件模板附加到该模板:

html:


非常感谢,很奇怪我没有找到这个解决方法。这是流星的虫子吗?不是虫子。在事件处理程序中,这是模板的数据上下文。如果没有特定的数据上下文,那么上下文就是窗口对象。非常感谢,很奇怪,我没有找到这个解决方法。这是流星的虫子吗?不是虫子。在事件处理程序中,这是模板的数据上下文。如果没有特定的数据上下文,那么上下文就是窗口对象。
<template name="tt">
  {{#each objs}}
    {{> inner}}
  {{/each}}
</template>

<template name="inner">
<h1>a={{a}}, b={{b}}</h1> 
{{#if yes}}
  <button class="b">b</button>{{yes}}
{{/if}}
</template>
Template.inner.events({
  'click .b' (event, template) {
    console.log(this.a); //will be "a"
  } 
})