Javascript 检查把手中是否存在变量
我有一个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&
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