我使用Handlebars库为我的网站制作模板。但是,因为模板应该是无逻辑的,所以基本的布尔逻辑(例如,基于小于检查打印红色或绿色div)是很困难的,而不需要求助于黑客攻击。如何在不向模板添加逻辑的情况下解决这些问题?
答案 0 :(得分:2)
无逻辑并不代表您根本不能使用逻辑,只是意味着您无法在模板中使用逻辑。 您应该在将所有数据传递给模板之前准备好所有数据。
例如,考虑MV *应用程序上的这个常见用例(如Backbone驱动的应用程序):
型号:
{
name: 'Roger',
age: 50
}
查看:
...
getTemplateData: function (model) {
var data = model;
if (model.age >= 50) {
data.isTooOld= true;
}
return data;
}
...
render: function () {
var data = this.getTemplateData(model) || {};
this.el.innerHTML = this.template(data);
}
...
模板:
<p>
OK, {{name}},
{{#if isTooOld}}
you're too old for this shit!
{{else}}
let's do this!
{{/if}}
</p>