1

我们如何检查类似的东西

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

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

4

2 回答 2

4

Mustache 模板语言显式地尽可能少逻辑。

但是,您可以使用 section 结构来做您想做的事情。为您的对象添加待处理、确定和完成的布尔值,然后执行以下操作:

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

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

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

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

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

于 2013-08-02T08:28:38.277 回答
0

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

它主要是无逻辑的,但支持辅助参数,这似乎解决了大多数人对无逻辑模板的抱怨,例如:

{{{isActive home}}}

在视图中:

view = {
    isActive: function(path: string){ return path === this.path ? "class='active'" : '' }
}
于 2020-01-24T02:28:28.827 回答