Handlebars.js 在Mustache模板中实现if条件

Handlebars.js 在Mustache模板中实现if条件,handlebars.js,mustache,Handlebars.js,Mustache,我们怎么能检查像这样的东西 if( status == 0 ){ //show pending } if( status == 1) { // show ok } if( status == 2 ){ // done } 这是我的小胡子图书馆。我们可以在模板中提供逻辑吗?小胡子模板语言的逻辑性尽可能的低 但是,您可以使用截面构造执行所需的操

我们怎么能检查像这样的东西

       if( status == 0 ){
            //show pending
       }
       if( status == 1) {
            // show ok
       }
       if( status == 2 ){
            // done
       }

这是我的小胡子图书馆。我们可以在模板中提供逻辑吗?

小胡子模板语言的逻辑性尽可能的低

但是,您可以使用截面构造执行所需的操作。为对象添加“挂起”、“确定”和“完成”布尔值,然后执行以下操作:

{{#pending}}
// show pending
{{/pending}}

{{#ok}}
// show ok
{{/ok}}

{{#done}}
// show done
{{/done}}
这实际上将比较逻辑移动到实际代码中,这意味着模板可以保持较少的逻辑


(您在标签中提到了handlebar.js。如果您使用handlebar,理论上可以通过执行类似操作来扩展该语言,但这与使用无逻辑模板语言的想法背道而驰。您甚至可以,但到那时,我建议您使用另一种模板语言。)

胡须模板语言的逻辑性尽可能的低

但是,您可以使用截面构造执行所需的操作。为对象添加“挂起”、“确定”和“完成”布尔值,然后执行以下操作:

{{#pending}}
// show pending
{{/pending}}

{{#ok}}
// show ok
{{/ok}}

{{#done}}
// show done
{{/done}}
这实际上将比较逻辑移动到实际代码中,这意味着模板可以保持较少的逻辑


(您在标签中提到了handlebar.js。如果您使用handlebar,理论上可以通过执行类似操作来扩展该语言,但这与使用无逻辑模板语言的想法背道而驰。您甚至可以,但到那时,我建议您使用另一种模板语言。)

我建议尝试一下Moxy模具:

它主要是无逻辑的,但支持帮助器参数,似乎可以解决大多数人对无逻辑模板的不满,例如:

{{{isActive home}}}
并且认为:

view = {
    isActive: function(path: string){ return path === this.path ? "class='active'" : '' }
}

我建议尝试一下Moxy Stencil:

它主要是无逻辑的,但支持帮助器参数,似乎可以解决大多数人对无逻辑模板的不满,例如:

{{{isActive home}}}
并且认为:

view = {
    isActive: function(path: string){ return path === this.path ? "class='active'" : '' }
}