2012-07-20 93 views
5

我正在使用流星。我有一个模板,它看起来像这样,在流星模板中检查空值

<template name="SearchAct"> 
{{#each SearchPerson}} 
    <div class="result"><!--This is one search result box--> 
     <div class="resultContent"> 
      <img src={{payload.pic_square}} alt="profile photo" class="floatLeft" /> 
      <p>{{payload.uid}}</p> 
      <span class="floatLeft"> 
       {{payload.first_name}} 
       <br/> 
       {{payload.last_name}} 
      </span> 
      <input type="checkbox" class="floatRight" /> 
      <h4>Tennis</h4> 
      <span class="age_location"> 
       {{#if payload.birthday}} 
        {{payload.birthday}}, 
       {{/if}} 
       {{#if payload.sex}} 
        {{payload.sex}} 
       {{/if}} 
       <br/> 
       {{#if payload.hometown_location}} 
        {{payload.hometown_location.city}}, 
        {{payload.hometown_location.state}}, 
        {{payload.hometown_location.country}} 
       {{/if}} 
      </span> 
      <div class="line"></div> 
      <a href="#" class="clear" onclick="renderProfile({{payload.uid}});">See Their Details</a> 
     </div><!-- End of resultContent--> 
    </div><!-- End of result box--> 
{{/each}} 
</template> 

现在我想查一个空值{{payload.birthday}}。这里如果我得到null的值,我想显示一条消息。我如何检查null的值?

回答

4

我想你只需要在那里一个{{else}}

<span class="age_location"> 
    {{#if payload.birthday}} 
     {{payload.birthday}} 
    {{else}} 
     No birthday found 
    {{/if}} 
</span> 
+2

不确定这是否是一个问题,但仅仅使用'{{else}}'只会检查一个值是否是“falsy”;所以'payload.birthday'可以是'false',''“'或者其他不被评估为true的值,'{{else}}'将被评估。如果你想显式的检查'payload.birthday'是否为null,而不是其他的“falsy”值,你需要使用模板函数或Handlebars helper。 – 2013-07-15 00:07:16

3

把手(通过扩展流星)不允许模板内的逻辑。因此,您需要使用Handlebars助手扩展您的模板或所有项目的模板。把下面的任何客户端加载JavaScript文件在您的项目:

Handlebars.registerHelper("isNull", function(value) { 
    return value === null; 
}); 

然后你可以使用它在你的模板作为一个参数为您if

{{#if isNull payload.birthday}}Your birthday is null!{{/if}}