2016-04-14 5 views
0

Этот код Метеор должен отображать правильный шаблон на основе значения хелпера display, который работает при запуске, но когда это значение изменяется позже через некоторые события щелчка, а значение в display изменяется от «mainMenu "до" содержимого "код не перерисовывает код с правильным шаблоном.Реактивный условный отрисовка шаблона

Template.registerHelper('display',() => { 
 
    return Session.get('display'); 
 
});
<template name="index"> 
 
    {{#if (display 'mainMenu')}} 
 
    {{> mainMenu}} 
 
    {{else}} {{#if (display 'content')}} 
 
    {{> Template.dynamic template="content" data=taskInputs}} 
 
    {{/if}}{{/if}} 
 
</template>

Почему это не работает, и как это исправить? Благодаря

+1

Почему ваш помощник не принимает какие-либо параметры? – Areca

+0

Мне это не нужно, но почему вы спросили? это нужно? –

+1

У вас есть вспомогательный метод без каких-либо параметров, который возвращает значение из сеанса, но вы предоставляете параметры, такие как 'mainMenu', 'content', пока вы вызываете этот помощник? – Areca

ответ

0

Я думаю, что это то, что вы ищете:

Template.registerHelper('display', (input) => { 
    return Session.get('display')==input; 
}); 

Template.index.onCreated(function() { 
    Session.set('display',null); 
}); 

и

<template name="index"> 
    {{#if display 'mainMenu'}} 
    {{> mainMenu}} 
    {{else}} 
    {{#if display 'content'}} 
     {{> Template.dynamic template="content" data=taskInputs}} 
    {{/if}} 
    {{/if}} 
</template> 

Это работает для меня.

Смежные вопросы