我很好奇Mustache是否具有与“Inverted Selection”语法{{^foo}}
相反的语法功能。
假设我们有数据:
{
people: [
{ name: "Alice" },
{ name: "Bob" },
{ name: "Mallory" }
]
}
模板:
<h3>People</h3>
<ul>
{{#people}}
<li>{{name}</li>
{{/people}}
</ul>
如果我们想在没有人的情况下添加项目,我们只需添加以下内容:
{{^people}}<li>No people</li>{{/people}}
但就我而言,如果没有人,我不想展示<h3>
和<ul>
。
像{{?people}}
这样的语法(代表{{^people}}
的相反/布尔否定)对于这种情况是完美的,但是存在吗?
另一种选择是预处理数据,添加值
has_people = Boolean(people.length)
并使用{{#has_people}}
,但这似乎是违反直觉的,反对逻辑少(我轻易使用这个术语)范例。
答案 0 :(得分:0)
最简单的解决方案似乎是自己添加功能。
我已经将Mustache.js存储库与引入{{? data }}
选择器所需的更改分开。在英语中,它可以被理解为“当为真时,或data
内有项目。”
Repository | Diff 1 | Diff 2