我们如何检查
之类的内容 if( status == 0 ){
//show pending
}
if( status == 1) {
// show ok
}
if( status == 2 ){
// done
}
这在Mustache Library中。我们可以在模板中提供逻辑吗?
答案 0 :(得分:4)
Mustache模板语言显然尽可能没有逻辑。
但是,您可以使用section构造来执行您想要的操作。添加布尔值以挂起,确定并完成对象,然后执行:
{{#pending}}
// show pending
{{/pending}}
{{#ok}}
// show ok
{{/ok}}
{{#done}}
// show done
{{/done}}
这实际上将比较逻辑移动到您的实际代码,这意味着模板可以保持逻辑无。
(你在标签中提到过handlebars.js。如果你正在使用Handlebars,理论上你可以通过做this这样的事来扩展语言,但这种做法违背了使用逻辑的想法无模板语言。您甚至可以grab a collection of extensions,但到那时我建议完全使用另一种模板语言。)
答案 1 :(得分:0)
我建议您尝试一下Moxy-Stencil:https://github.com/dcmox/moxyscript-stencil
主要是无逻辑的,但支持辅助参数,似乎可以用无逻辑的模板解决大多数人的困扰,例如:
{{{isActive home}}}
并在视图中:
view = {
isActive: function(path: string){ return path === this.path ? "class='active'" : '' }
}