Handlebars辅助函数if的扩展

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

你可能感兴趣的:(js的辅助函数if)