2013-07-25 55 views
0

我正在根据我从腐烂的西红柿api得到的数据进行电影搜索。我正在使用handlebars.js。到目前为止,我已经有了这个模板,它工作得很好。把手块帮手“如果”不起作用

<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,“”或[](“falsy”值), Handlebars将不会呈现该块。

因此请检查您的“工作室”价值。

代码,我已拨弄。

HTML:

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

JS:

this.$el.html(temp({name1: 'stack'}));