在不同模板中使用具有相同名称的不同变量

时间:2016-04-14 11:25:25

标签: meteor

我有两个模板,它们包含在一些布局模板中:

{{>b_afisha_today}}
{{>b_afisha_soon}}

我想在我的一个模板的帮助器中使用一些变量。

Template.b_afisha_today.onCreated(function() {
    this.data.day = new Date().getDate();
}

Template.b_afisha_today.helpers({
    times: function() {
        var day = Template.instance().data.day;
    }
})

这里的问题是Template.instance()。data.day现在属于父布局模板(我估计属于全局范围)。因此,如果我在第二个模板中初始化一个具有相同名称的新变量,它将更改我的第一个模板中的所有内容。

Template.b_afisha_soon.onCreated(function() {
    this.data.day = 'mess everything';
}

不确定是否可以使用两个具有相同名称的独立变量,每个变量都可以在一个模板中访问?

1 个答案:

答案 0 :(得分:0)

您可以将数据从父模板传递到子模板,如下所示。

<div class="slot-wrapper">
  {{> b_afisha_today day=day}}
  {{> b_afisha_soon day=day}}
  ...
</div>

<template name="b_afisha_today">
  <div class="day"><span>{{day}}</span></div>
</template>

<template name="b_afisha_soon">
  <div class="day"><span>{{day}}</span></div>
</template>

我希望能解决你的问题。