我们如何检查类似
if( status == 0 ){
//show pending
}
if( status == 1) {
// show ok
}
if( status == 2 ){
// done
}
在小胡子图书馆中。我们可以在模板中提供逻辑吗?
Mustache模板语言明确地尽可能地减少逻辑。
但是,您可以使用section构造来执行所需的操作。为对象添加待定,确定和完成的布尔值,然后执行以下操作:
{{#pending}}
// show pending
{{/pending}}
{{#ok}}
// show ok
{{/ok}}
{{#done}}
// show done
{{/done}}
这实际上将比较逻辑移至您的实际代码,这意味着模板可以保持较少的逻辑。
(((您在标记中提到了handlebars.js。如果您使用的是Handlebars,从理论上讲,您可以通过执行this之类的方法来扩展语言,但是这种做法与使用无逻辑模板语言的想法背道而驰。您甚至可以使用grab a collection of extensions,但是到那时,我建议您完全使用另一种模板语言。)
我建议尝试一下Moxy-Stencil:https://github.com/dcmox/moxyscript-stencil
它主要是无逻辑的,但支持辅助参数,似乎可以用无逻辑的模板解决大多数人的困扰,例如:
{{{isActive home}}}
并且在视图中:
view = {
isActive: function(path: string){ return path === this.path ? "class='active'" : '' }
}