0
votes

I'm new with meteor and at the moment i'm testing out nested templates. More specific, i'm trying to get this pseudo switch working.

I have a PARENT template that gets data from a template.helper function where it gets the data for the {{#each}}.

This is the PARENT template

<template name="result">

    {{#each Tresult}}

        <div class="jow">

            <h3>{{name}}</h3>
            <p>{{type}}</p>

            <div>{{> Tstatus}}</div>

        </div>  

    {{/each}}

</template>

The PARENT also includes another template {{> Tstatus}}

This is the CHILD template

<template name="Tstatus">

    {{#status_is "green"}}
        {{> Tstatus_green}}
    {{/status_is}}

    {{#status_is "red"}}
        {{> Tstatus__red}}
    {{/status_is}}

    {{#status_is "orange"}}
        {{> Tstatus__orange}}
    {{/status_is}}

</template>

<template name="Tstatus_green">

    <span>green</span>

</template>


<template name="Tstatus_red">

    <span>red</span>

</template>


<template name="Tstatus_orange">

    <span>orange {{number}}</span>

</template>

This template can also include 3 other templates:

  • Tstatus_green
  • Tstatus_red
  • Tstatus_orange

But the problem is, how do i get this pseudo switch working. So i only need to include 1 of the 3 templates, based on it's status color.

And this is the helper function for the PARENT template

Template.result.helpers({

    Tresult:function(){

        return Ttable.find()

    }


})
1
What is the status_is helper? - user3374348

1 Answers

0
votes

I would do something like this:

Template.Tstatus.helpers({
    getStatusColor:function()
    {
        //"this" will be the current Ttable document
        var color = getColorFunction(this)
        return Template["Tstatus_"+color]
    }
})


<template name="Tstatus">
    {{#with getStatusColor}}
        {{>.}}
    {{/with}}
</template>