2016-04-14 13 views
0

私はいくつかのレイアウトテンプレートに含まれている2つのテンプレートを、持っている:異なるテンプレートに同じ名前を持つ別の変数を使用して

{{>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は今、親レイアウトテンプレート(およびグローバルスコープに私は推測)に属しているということです。したがって、2番目のテンプレートで同じ名前の新しい変数を初期化すると、最初のテンプレートのすべてが変更されます。

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

同じ名前の2つの独立変数を使用することが可能かどうかは、それぞれ1つのテンプレート内でアクセス可能かどうかわかりませんか?

答えて

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> 

あなたの問題を解決できることを願っています。

+0

残念ながら、それはできません。異なる親テンプレートがあります。私はデータを生成して親のテンプレートに渡すことはできません。テンプレート内で変数をスコープするには何らかの方法でなければならないと思います。 – ivanzolotov

関連する問題