我有一个带有多个iff块的Handlebars模板。 iff是用于比较值的自定义帮助程序。模板编译,但是应用它我没有输出也没有错误。
请问我做错了什么?
iff helper
Handlebars.registerHelper("iff", function (v1, operator, v2, options) {
switch (operator) {
case '==':
return (v1 == v2) ? options.fn(this) : options.inverse(this);
case '===':
return (v1 === v2) ? options.fn(this) : options.inverse(this);
case '<':
return (v1 < v2) ? options.fn(this) : options.inverse(this);
case '<=':
return (v1 <= v2) ? options.fn(this) : options.inverse(this);
case '>':
return (v1 > v2) ? options.fn(this) : options.inverse(this);
case '>=':
return (v1 >= v2) ? options.fn(this) : options.inverse(this);
case '&&':
return (v1 && v2) ? options.fn(this) : options.inverse(this);
case '||':
return (v1 || v2) ? options.fn(this) : options.inverse(this);
case '!=':
return (v1 != v2) ? options.fn(this) : options.inverse(this);
case '!==':
return (v1 !== v2) ? options.fn(this) : options.inverse(this);
default:
return options.inverse(this);
}
});
模板
{{#each message}}
{{#iff type '==' -1}}
<div class='sb-date'>{{text}}</div>
{{/iff}}
{{#iff type '==' 1}}
<div class='sb sb-text sb-{{dir}}'>{{text}}<div class="sb-time">{{time}}</div></div>
{{/iff}}
{{#iff type '==' 5}}
<div class='sb sb-text sb-{{dir}}'>{{text}}<div class="sb-time">{{time}}</div></div>
{{/iff}}
{{#iff type '==' 6}}
<div class='sb sb-text sb-{{dir}}'>{{text}}<div class="sb-time">{{time}}</div></div>
{{/iff}}
{{#iff type '==' 2}}
<div class='sb sb-image sb-{{dir}}'><img alt="" src="media/{{text}}" /><div class="sb-time">{{time}}</div></div>
{{/iff}}
{{#iff type '>' 2}}
<div class='sb sb-file sb-{{dir}}'>media/{{text}}<div class="sb-time">{{time}}</div></div>
{{/iff}}
{{/each}}
答案 0 :(得分:1)
找到了解决方案。
传递数组时使用:{{#each this}}