2012-07-20 123 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}}