2017-03-02 11 views
0

Ich möchte auf eine andere Vorlage beziehen sich auf die Verwendung in einem {{}} #each SchleifeMeteor: Wie Lenker innerhalb Lenker verwenden

html:

{{#each listOfItems}} 
{{>{{variableOne}}}} 
{{/each}} 

die

<Template name="one"> 
One 
</Template> 
machen sollte

oder

<Template name="two"> 
Two 
</Template> 

de anhängig auf dem js

andere versucht Syntax umfassen

{{>'{{variableOne}}'}} 

oder

{{>Template.dynamic template={{variableOne}}}} 

sehr geschätzt Jede Hilfe oder Abhilfe!

Antwort

1

Nicht sicher, was Sie zu erreichen versuchen. Ich nehme an, dass Sie die Blaze-Rendering-Engine verwenden. Wenn Sie Parameter übergeben wollen versuchen Sie dies:

{{#each}} 
    {{> TemplateName variable=variable}} 
{{/each}} 

Oder wenn Sie möchten, dass bestimmte Vorlage zeigen, auf Variablenwert je versuchen, diese (Vorsicht - eq als globaler Helfer für den Vergleich von Werten gemeint):

{{#each}} 
    {{#if variable eq 1}} 
    {{> TemplateOne}} 
    {{else}} 
    {{> TemplateTwo}} 
    {{/if}} 
{{/each}} 
+0

hm, ich will ein Attribut der Dokumente von der jede Schleife um die Vorlage zu definieren, die geladen wird. Also ich möchte nicht definieren "Variable" in seinem eigenen Helfer, sollte es im Helfer für die einzelnen Schleife definiert werden – janjackson

+1

{{# jedes Element in listOfItems}} {{# item.property eq 1}} {{ > TemplateOne}} {{else}} {{ > TemplateTwo}} {{/ if}} {{/ each}} prüfen dieses Paket mit einigen nützlichen Helfer aus: [link] (https: // atmospherejs.com/universe/utilities-blaze) – metalcamp

+0

das ist, was ich gesucht habe. Ich habe die Syntax {{jedes Objekt in listOfItems}} noch nie gesehen. Aber das würde bedeuten, dass ich {{item.templateName}} tun könnte, richtig? Werde es später ausprobieren :) – janjackson

1

Unter der Annahme, dass die Liste, die Sie durchlaufen die Template-Namen enthält, wird diese Sie bekommen, was Sie wollen:

html:

<template name="hello"> 
    {{#each template in myTemplates}} 
    {{> Template.dynamic template=template }} 
    {{/each}} 
</template> 

<template name='foo'>foo-template</template> 
<template name='bar'>bar-template</template> 

js:

Template.hello.helpers({ 
    myTemplates() { 
    return ['foo', 'bar']; 
    }, 
});