在流星模板中检查空值
问题描述:
我正在使用流星。我有一个模板,它看起来像这样,在流星模板中检查空值
<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
的值?
答
我想你只需要在那里一个{{else}}
:
<span class="age_location">
{{#if payload.birthday}}
{{payload.birthday}}
{{else}}
No birthday found
{{/if}}
</span>
答
把手(通过扩展流星)不允许模板内的逻辑。因此,您需要使用Handlebars助手扩展您的模板或所有项目的模板。把下面的任何客户端加载JavaScript文件在您的项目:
Handlebars.registerHelper("isNull", function(value) {
return value === null;
});
然后你可以使用它在你的模板作为一个参数为您if
:
{{#if isNull payload.birthday}}Your birthday is null!{{/if}}
答
我想你可以试试这个,您可以使用count
如果值birthday
EQL 0是假的,这是为我工作
<span class="age_location">
{{#if payload.birthday.count}}
{{payload.birthday}}
{{else}}
you display message
{{/if}}
</span>
裁判:https://groups.google.com/forum/#!topic/meteor-talk/Gumkz9VnLYY
不确定这是否是一个问题,但仅仅使用'{{else}}'只会检查一个值是否是“falsy”;所以'payload.birthday'可以是'false',''“'或者其他不被评估为true的值,'{{else}}'将被评估。如果你想显式的检查'payload.birthday'是否为null,而不是其他的“falsy”值,你需要使用模板函数或Handlebars helper。 – 2013-07-15 00:07:16