Handlebars辅助函数if的扩展

handlebars在JS渲染html的时候功能非常强大,有许多内置的函数供使用,比如说 if 函数,

{{#if data}}

{{/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}}
11
//满足条件输出此内容
{{else}}
22
//不满足条件时候
{{#ifExpress}}
此时这个辅助函数就相当于一个if函数,只是有了更多的逻辑,由于有了options,表明此helper相当于一个block块,有一定的语法结构,要加#,不像一般的help不需要#号就可以调用(供自己记录所用)
原文链接 http://www.cnblogs.com/iyangyuan/p/3471350.html

你可能感兴趣的:(javascript)