【发布时间】:2023-04-07 05:39:01
【问题描述】:
我正在使用Handlebars 库为我的网站制作模板。但是,因为模板应该是无逻辑的,所以基本的布尔逻辑(例如,基于小于检查打印红色或绿色的 div)在不求助于黑客的情况下是很困难的。如何在不向模板添加逻辑的情况下解决此类问题?
【问题讨论】:
标签: handlebars.js template-engine
我正在使用Handlebars 库为我的网站制作模板。但是,因为模板应该是无逻辑的,所以基本的布尔逻辑(例如,基于小于检查打印红色或绿色的 div)在不求助于黑客的情况下是很困难的。如何在不向模板添加逻辑的情况下解决此类问题?
【问题讨论】:
标签: handlebars.js template-engine
无逻辑并不意味着你根本不能使用逻辑,它只是意味着你不能在模板中使用逻辑。 在将数据传递给模板之前,您应该准备好所有数据。
例如,考虑一个 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>
【讨论】: