2012-07-20 35 views
5

Tôi đang sử dụng thiên thạch. Tôi có mẫu giống như thế này,Kiểm tra giá trị null trong mẫu sao băng

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

Bây giờ tôi muốn kiểm tra giá trị null cho {{payload.birthday}}. Ở đây nếu tôi nhận được giá trị null, tôi muốn hiển thị một tin nhắn. Làm thế nào tôi có thể kiểm tra giá trị null?

Trả lời

4

Tôi nghĩ rằng bạn chỉ cần một {{else}} trong đó:

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

Không chắc chắn nếu đây là một mối quan tâm, nhưng chỉ đơn giản bằng cách sử dụng '{{else}}' sẽ chỉ kiểm tra nếu một giá trị là "falsy"; vì vậy 'payload.birthday' có thể là' false', '" "' hoặc các giá trị khác không đánh giá là true và '{{else}}' sẽ được đánh giá. Nếu bạn muốn kiểm tra rõ ràng liệu 'payload.birthday' có là null hay không, trái với các giá trị" falsy "khác, bạn cần sử dụng một hàm mẫu hoặc helper Handlebars. –

3

tay lái (và bằng cách mở rộng Meteor) không cho phép logic bên trong các mẫu. Vì vậy, bạn cần phải mở rộng mẫu của bạn, hoặc tất cả các mẫu của dự án của bạn, với một trình trợ giúp Handlebars. Đặt sau trong bất kỳ tập tin JavaScript client-nạp trong dự án của bạn:

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

Sau đó, bạn có thể sử dụng nó trong mẫu của bạn như một tham số cho if của bạn:

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

Tôi nghĩ bạn có thể thử loại này, bạn có thể sử dụng count nếu giá trị birthday eql 0 là sai sự thật, đó là công việc đối với tôi

<span class="age_location"> 
    {{#if payload.birthday.count}} 
     {{payload.birthday}} 
    {{else}} 
     you display message 
    {{/if}} 
</span> 

ref: https://groups.google.com/forum/#!topic/meteor-talk/Gumkz9VnLYY

Các vấn đề liên quan