在我的Handlebars模板中,我检查是否存在变量,并在其中呈现一些文本:
{{#if foo}}
some text
{{/if}}
Run Code Online (Sandbox Code Playgroud)
如果foo是文本或foo是数字但不是零,这可以正常工作.但如果
var foo = 0;
Run Code Online (Sandbox Code Playgroud)
然后{{#if foo}}返回false.
这似乎是另一个Javascript古怪,因为Javascript本身的行为方式相同.但是,在Javascript代码中,您可以通过检查变量是否为"未定义"来解决此问题.
我怎样才能在Handlebars中做同样的事情?
我可以写一个{{#exists}}帮手,但我希望有内置的东西.
alb*_*jan 28
内置了一些内容:
{{#if foo includeZero=true}}
foo!
{{/if}}
Run Code Online (Sandbox Code Playgroud)
这显示的foo!时间foo是0.
Sha*_*ane 17
我会更好地为{{else}}条件提供一个案例......
/**
* The {{#exists}} helper checks if a variable is defined.
*/
Handlebars.registerHelper('exists', function(variable, options) {
if (typeof variable !== 'undefined') {
return options.fn(this);
} else {
return options.inverse(this);
}
});
Run Code Online (Sandbox Code Playgroud)
现在你可以拥有:
{{#exists myvar}}
<p>Value of myvar is ... {{myvar}}</p>
{{else}}
<p>Please supply a myvar</p>
{{/exists}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10907 次 |
| 最近记录: |