handlebars在JS渲染html的时候功能非常强大,有许多内置的函数供使用,比如说 if 函数,
{{#if data}}<div></div>{{/if}}就可以判断在存在data的时候渲染内部html,这就是一个简单的 if 函数
但总不可能所有的逻辑都能考虑到,如果if里面还有一些复杂的逻辑,就不能处理了,所以就有了一些自定义函数
Handlebars.registerHelper("ifExpress",function(a,b,options){
if(a b){
//a 和b满足一定的关系return options.fn(this);//这个就相当于满足这个条件,执行ifExpress下面的一段代码//options.fn(this)表示选择这个
}else{
return options.inverse(this);//表示不选择这个,选择else
}
});
在模版中的用法就是
{{#ifExpress a b}}
<div>11</div> //满足条件输出此内容
{{else}}
<div>22</div>//不满足条件时候
{{#ifExpress}}
此时这个辅助函数就相当于一个if函数,只是有了更多的逻辑,由于有了options,表明此helper相当于一个block块,有一定的语法结构,要加#,不像一般的help不需要#号就可以调用(供自己记录所用)
原文链接 http://www.cnblogs.com/iyangyuan/p/3471350.html