2013-07-25 4 views
0

Я делаю поиск фильмов на основе данных, которые я получаю от гнилых томатов api. Я использую handlebars.js. Пока у меня есть этот шаблон, и он работает нормально.Handlebars block helper "if" не работает

<div class="info"> 
     <h3>{{title}}</h3> 
     <span> Year: {{year}} </span> 
     <span> Studio:{{studio}} </span> 
     <span> Synopsis:{{synopsis}} <span> 
    </div> 

Однако, некоторые из фильмов не имеют студию при условии, поэтому я хотел бы сделать, что в данном случае нет «Студия:» будет напечатан. Это мой код для этого:

{{#if studio}} 
    <span> Studio:{{studio}} </span> 
    {{/if}} 

Я скопировал его из примера, представленного на странице handebars.js. Тем не менее это не работает. Может ли кто-нибудь объяснить мне, что мне не хватает? Я полагаю, что нет необходимости использовать Handlebars.registerHelper, поскольку я использую этот простой оператор if. Или это?

+0

Почему вы не используете '# unless' вместо? Это в основном '! # If', что вам нужно от внешнего вида вещей – Bojangles

+0

Еще не работает, нет Студия: {{studio}}. – Vin

ответ

0

см. Это jsFiddle. У вас не должно быть проблем с этим.

От documentation.

Вы можете использовать вспомогательный ключ if для условного рендеринга блока. Если аргумент возвращает false, undefined, null, "" или [] (значение «ложь»), Ручки не будут отображать блок.

Итак, проверьте свое значение «студия».

Код, который я поиграл.

HTML:

<p>{{name1}}</p> 
{{#if name2}} 
    <p>{{name2}}</p>  
{{/if}} 
<p>End</p> 

ЯШ:

this.$el.html(temp({name1: 'stack'})); 
Смежные вопросы