2016-04-14 8 views
0

Ich habe zwei Vorlagen, die in eine Layoutvorlage enthalten sind:Verwendung verschiedener Variablen mit dem gleichen Namen in verschiedenen Vorlagen

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

Ich möchte für eine meiner Vorlagen eine Variable in Helfer verwenden.

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; 
    } 
}) 

Das Problem hierbei ist, dass Template.instance(). Data.day gehört nun zu der übergeordneten Layout-Vorlage (und auf den globalen Bereich glaube ich). Also, wenn ich eine neue Variable mit dem gleichen Namen in meiner zweiten Vorlage initialisiere, wird alles in meiner ersten Vorlage geändert.

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

Nicht sicher, ob es möglich ist, zwei unabhängige Variablen mit dem gleichen Namen zu verwenden, ist jeder zugänglich innerhalb einer Vorlage?

Antwort

0

Sie können die Daten wie folgt von der übergeordneten Vorlage zur untergeordneten Vorlage übergeben.

<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> 

Ich hoffe, dass Ihr Problem lösen kann.

+0

Leider kann es nicht. Es gibt verschiedene Elternvorlagen. Ich kann (und will) einfach keine Daten generieren und sie von meinen Eltern an meine Vorlagen weitergeben. Ich denke, es sollte eine Möglichkeit sein, Variablen innerhalb von Vorlagen zu verwenden. – ivanzolotov

Verwandte Themen