Javascript 检查把手中是否存在变量

Javascript 检查把手中是否存在变量,javascript,handlebars.js,Javascript,Handlebars.js,我有一个javascript对象,如: var data = { "current" : 0, "max" : 5, "reward" : 5 }; 我正在使用手柄将这些数据装入HTML中,如: <div> <span>Current : {{current}}</span> <span>Max : {{max}}</span> <span>Reward: {{reward}}</span> </div&

我有一个javascript对象,如:

var data = {
"current" : 0,
"max" : 5,
"reward" : 5
};
我正在使用手柄将这些数据装入HTML中,如:

<div>
<span>Current : {{current}}</span>
<span>Max : {{max}}</span>
<span>Reward: {{reward}}</span>
</div>

当前:{{Current}}
Max:{{Max}}
奖励:{{奖励}
现在的问题是,奖励属性可能并不总是出现在数据中,在这种情况下,我不想显示跨度。因此,我做了以下几点:-

{{#if reward}}
 <span>Reward: {{reward}}</span>
{{/if}}
{{{#如果奖励}
奖励:{{奖励}
{{/if}

它是有效的,如果奖励属性不存在,它不会显示跨度,但是如果奖励的值为0,它也不会显示跨度,有人能建议如何解决它吗。我可以使用一些辅助函数。但是,我可以在不使用任何辅助函数的情况下执行此操作吗?

这是通过设计
如果
检查
falsy
值,请参见

可以使用if辅助对象有条件地渲染块。如果是 参数返回false、undefined、null“”或[](一个“falsy”值), 把手不会渲染块

有一个
includeZero
选项使用如下:

{{#if reward includeZero=true}}
{{/if}}

您可以在这里看到helper的实现:

在您的
数据
对象中,您可以有一个
rewardExists
布尔值,然后在您的模板中:
{{if rewardExists}
。实际上,我可以通过一些helper函数或添加一个额外的变量来解决这个问题,我只是想知道是否有任何这样的标签,车把提供。“if”在这里不起作用,还有什么其他的吗?如果我覆盖了实际的if助手,它也会应用到其他模板中。因此,如果在任何其他模板中,我根据变量的值(包括0)添加/删除任何块,它将不起作用。我无法更改单个模板的默认if帮助程序。不管怎么说,这个链接很有用,我知道我需要写一个自定义的助手。是的,我正在寻找类似的东西。太好了。这似乎不适用于空数组unfortunately@stackers使用
array.length