handlebars.js – Handlebars #if和数字零

前端之家收集整理的这篇文章主要介绍了handlebars.js – Handlebars #if和数字零前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的Handlebars模板中,我检查了一个变量的存在,并在其中显示一些文本:
  1. {{#if foo}}
  2. some text
  3. {{/if}}

如果foo是文本,或者如果foo是数字但不是零,这可以正常工作.但如果

  1. var foo = 0;

那么{{#if foo}}返回false.

这似乎是另一个JavaScript的奇怪,因为Javascript本身的行为方式相同.但是,在Javascript代码中,您可以通过检查变量是否为“undefined”来解决此问题.

如何在Handlebars中做同样的事情?

我可以写一个{{#exists}}帮手,但我希望有一些内置的东西.

解决方法

我会更好一点,为{{else}}条件提供案例…
  1. /**
  2. * The {{#exists}} helper checks if a variable is defined.
  3. */
  4. Handlebars.registerHelper('exists',function(variable,options) {
  5. if (typeof variable !== 'undefined') {
  6. return options.fn(this);
  7. } else {
  8. return options.inverse(this);
  9. }
  10. });

现在你可以有:

  1. {{#exists myvar}}
  2. <p>Value of myvar is ... {{myvar}}</p>
  3. {{else}}
  4. <p>Please supply a myvar</p>
  5. {{/exists}}

猜你在找的JavaScript相关文章