如果在胡子模板中满足条件,则要执行

问题描述 投票:1回答:2

我们如何检查类似

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

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

handlebars.js mustache
2个回答
4
投票

Mustache模板语言明确地尽可能地减少逻辑。

但是,您可以使用section构造来执行所需的操作。为对象添加待定,确定和完成的布尔值,然后执行以下操作:

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

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

{{#done}}
// show done
{{/done}}

这实际上将比较逻辑移至您的实际代码,这意味着模板可以保持较少的逻辑。

(((您在标记中提到了handlebars.js。如果您使用的是Handlebars,从理论上讲,您可以通过执行this之类的方法来扩展语言,但是这种做法与使用无逻辑模板语言的想法背道而驰。您甚至可以使用grab a collection of extensions,但是到那时,我建议您完全使用另一种模板语言。)


0
投票

我建议尝试一下Moxy-Stencil:https://github.com/dcmox/moxyscript-stencil

它主要是无逻辑的,但支持辅助参数,似乎可以用无逻辑的模板解决大多数人的困扰,例如:

{{{isActive home}}}

并且在视图中:

view = {
    isActive: function(path: string){ return path === this.path ? "class='active'" : '' }
}
© www.soinside.com 2019 - 2024. All rights reserved.