我有JSON字符串,如下所示
{
Red:10,
Green: 0
}
所以我想要显示以下行10次(如Red:10)
<img src="img/red.png">
如何使用Mustache做到这一点?
我试过
{{# Red}}
<img src="img/red.png">
{{/ Red}}
但它不起作用
答案 0 :(得分:0)
从此页面:http://mustache.github.io/mustache.5.html
如果 person 键存在并且具有非false值,则pound和斜杠之间的HTML将呈现并显示一次或多次。
当值为非空列表时,块中的文本将针对列表中的每个项目显示一次。块的上下文将被设置为每次迭代的当前项。通过这种方式,我们可以循环收集。
这意味着你需要{#Red}来引用10个项目的列表来这样做。似乎没有一种简洁的方法来表示n个项目的列表,因此您最好将JSON修改为类似
{
Red: [
{ "value": "1" },
{ "value": "2" },
...
{ "value": "10" },
]
Green: 0
}
我不确定,但你也可能需要红色和绿色的引号。取决于你如何加载JSON。
胡子并不是真正意义上做这样的事情。毕竟,它是无逻辑的模板。您应该考虑使用Javascript执行此操作。你可以考虑使用把手来使用带有Javascript的Mustache。
答案 1 :(得分:0)
您要尝试做的事情:您想像
但是它比PHP少。它不提供整个超文本预处理器语言的功能。这只是模板语法,当然还不能完全完成。
因此您不能编写这样的循环。或者,您可以遍历数组,例如:
此:
{
"musketeers": ["Athos", "Aramis", "Porthos", "D'Artagnan"]
}
这:
{{#musketeers}}
* {{.}}
{{/musketeers}}
给你这个:
* Athos
* Aramis
* Porthos
* D'Artagnan
但是类似的服务提供了此功能。 使用EJS,这是可能的:
<% for(var j = 0; j < 10; j++){ %>
<img src="pic<%= j %>.png" />
<% } %>