我正在使用Meteor 1.3.1,我正在做一些实验来获取事件监听器块中的数据上下文,这是我的代码:
var objs=[
{ a:"a1", b:"b1", yes:true },
{ a:"a2", b:"b2" },
{ a:"a3", b:"b3", yes:true },]
Template.tt.helpers({
objs: objs
})
Template.tt.events({
'click .b'(event, template) {
console.log(Template.currentData().a); //---> undefined
console.log(template.data.a); //---> undefined
console.log(Template.parentData(0).a); //---> undefined
console.log(this); //---> Window Obj
}
})
<template name="tt">
{{#each objs}}
<h1>a={{a}}, b={{b}}</h1>
{{#if yes}}
<button class="b">b</button>{{yes}}
{{/if}}
{{/each}}
</template>
我想获取a
密钥的值,但在几个方面失败了。
答案 0 :(得分:0)
此问题的常见模式是创建嵌套模板并将事件模板附加到其中:
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>
JS:
Template.inner.events({
'click .b' (event, template) {
console.log(this.a); //will be "a"
}
})