// 注册一个比较是否相等的Helper,判断v1是否等于v2
Handlebars.registerHelper("equal", function(v1, v2, options) {
if (v1 = v2) {
return options.fn(this);
} else {
return options.inverse(this);
}
});
Handlebars.registerHelper('expression', function() {
var exps = [];
try {
// 最后一个参数作为展示内容,也就是平时的options。不作为逻辑表达式部分
var arg_len = arguments.length;
var len = arg_len - 1;
for (var j = 0; j < len; j++) {
exps.push(arguments[j]);
}
var result = eval(exps.join(''));
if (result) {
return arguments[len].fn(this);
} else {
return arguments[len].inverse(this);
}
} catch (e) {
throw new Error('Handlerbars Helper "expression" can not deal with wrong expression:' + exps.join(' ') + ".");
}
Handlebars.registerHelper("equal", function(v1, v2, options) {
if (v1 = v2) {
return options.fn(this);
} else {
return options.inverse(this);
}
});
Handlebars.registerHelper('expression', function() {
var exps = [];
try {
// 最后一个参数作为展示内容,也就是平时的options。不作为逻辑表达式部分
var arg_len = arguments.length;
var len = arg_len - 1;
for (var j = 0; j < len; j++) {
exps.push(arguments[j]);
}
var result = eval(exps.join(''));
if (result) {
return arguments[len].fn(this);
} else {
return arguments[len].inverse(this);
}
} catch (e) {
throw new Error('Handlerbars Helper "expression" can not deal with wrong expression:' + exps.join(' ') + ".");
}
});
应用实例
{{#expression "'" subject "'=='企业公文'" " && " "'" taskName "'=='部门领导审批'" " && " "'" isManager "'=='Y'"}}