2012-07-20 19 views
5

Estoy usando meteorito. Tengo una plantilla que se parece a esto,Comprobando el valor nulo en la plantilla de meteorito

<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> 

Ahora quiero comprobar un valor nulo para {{payload.birthday}}. Aquí si obtengo el valor null, quiero mostrar un mensaje. ¿Cómo podría verificar un valor de null?

Respuesta

4

Creo que sólo necesita un {{else}} allí:

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

No estoy seguro si esto es una preocupación, pero simplemente usando '{{else}}' solo comprobará si un valor es "falso"; entonces 'payload.birthday' podría ser' false', '" "' u otros valores que no se evalúan como verdaderos y '{{else}}' será evaluado. Si desea comprobar explícitamente si el 'payload.birthday' es nulo, a diferencia de otros valores de" falsy ", debe usar una función de plantilla o ayuda de Handlebars. –

3

Manillar (y por extensión Meteor) no permite la lógica dentro de las plantillas. Por lo tanto, necesita extender su plantilla, o todas las plantillas de su proyecto, con un ayudante de manubrio. Poner el siguiente en cualquier archivo JavaScript cliente-cargada en su proyecto:

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

A continuación, puede utilizarlo en su plantilla como un parámetro para su if:

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