我有如下 JSON 字符串
{
Red:10,
Green: 0
}
所以我想显示以下行 10 次(如 Red: 10 )
<img src="img/red.png">
我怎样才能使用 Mustache 做到这一点?
我试过了
{{# Red}}
<img src="img/red.png">
{{/ Red}}
但它不工作
我有如下 JSON 字符串
{
Red:10,
Green: 0
}
所以我想显示以下行 10 次(如 Red: 10 )
<img src="img/red.png">
我怎样才能使用 Mustache 做到这一点?
我试过了
{{# Red}}
<img src="img/red.png">
{{/ Red}}
但它不工作
从这个页面: http: //mustache.github.io/mustache.5.html
如果person键存在且具有非 false 值,则井号和斜线之间的 HTML 将被渲染并显示一次或多次。
当值为非空列表时,块中的文本将针对列表中的每个项目显示一次。块的上下文将被设置为每次迭代的当前项。通过这种方式,我们可以遍历集合。
这意味着您需要 {# Red} 来引用包含 10 个项目的列表才能这样做。似乎没有一种简洁的方式来表示 n 个项目的列表,所以你最好将你的 JSON 修改为类似
{
Red: [
{ "value": "1" },
{ "value": "2" },
...
{ "value": "10" },
]
Green: 0
}
我不确定,但您可能还需要红色和绿色的引号。取决于您如何加载 JSON。
小胡子并不是真的适合做这样的事情。毕竟,它是无逻辑的模板。您应该考虑使用 Javascript 执行此操作。您可以考虑使用把手来使用 Mustache 和 Javascript。
您正在尝试做的事情:您想像 PHP 一样使用无逻辑的Mustache。
但它比 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" />
<% } %>