Mustache 留胡子10次

Mustache 留胡子10次,mustache,Mustache,我有如下JSON字符串 { Red:10, Green: 0 } 所以我想将下面的行显示10次(红色:10) 我怎样才能用胡子做到这一点 我试过了 {{# Red}} <img src="img/red.png"> {{/ Red}} {{{#Red} {{/红色} 但它不起作用从本页: 如果person键存在且具有非false值,则磅和斜杠之间的HTML将呈现并显示一次或多次 当值为非空列表时,对于列表中的每个项目,块中的文本将显示一次。对于每次迭代,块的上下文将

我有如下JSON字符串

{
  Red:10,
  Green: 0
}
所以我想将下面的行显示10次(红色:10)


我怎样才能用胡子做到这一点

我试过了

{{# Red}}
<img src="img/red.png">
{{/ Red}}
{{{#Red}
{{/红色}
但它不起作用

从本页:

如果person键存在且具有非false值,则磅和斜杠之间的HTML将呈现并显示一次或多次

当值为非空列表时,对于列表中的每个项目,块中的文本将显示一次。对于每次迭代,块的上下文将设置为当前项。通过这种方式,我们可以在集合上循环

这意味着您需要{#Red}引用一个包含10个项目的列表才能这样做。似乎没有一种简洁的方式来表示n个项的列表,因此最好将JSON修改为

{
  Red: [
    { "value": "1" },
    { "value": "2" },
    ...
    { "value": "10" },
  ]
  Green: 0
}
我不确定,但你可能也需要红色和绿色的引号。取决于加载JSON的方式


胡子不是用来做这种事情的。毕竟,它是无逻辑的模板。你应该考虑用JavaScript来做这件事。您可以研究如何使用手柄将小胡子与Javascript结合使用。

您想做的是:您想使用类似PHP的逻辑小胡子

但它比PHP要少。它不提供整个超文本预处理器语言的功能。这只是一个模板语法,当然不是图灵完整的

所以你不能写这样的循环。或者,您可以迭代数组,例如:

这:

这是:

{{#musketeers}}
* {{.}}
{{/musketeers}}
给你这个:

* Athos
* Aramis
* Porthos
* D'Artagnan

但类似的服务也提供了这一功能。 使用,这是可能的:

<% for(var j = 0; j < 10; j++){ %>
    <img src="pic<%= j %>.png" />
<% } %>

.png“/>

一些Mustache实现是多功能的,可以让您注入自己的代码,例如用于呈现
“{{{{repeat(Red)}}{{/repeat(Red)}}}}}”
很好。我不知道Mustache是否真的适合做这些事情,但是一些库实现者不喜欢让他们的用户束手无策:
* Athos
* Aramis
* Porthos
* D'Artagnan
<% for(var j = 0; j < 10; j++){ %>
    <img src="pic<%= j %>.png" />
<% } %>