23

我正在使用 mustache 模板引擎,我只想显示长列表中的第一项,但似乎找不到这样做的文档?

如果我使用:

{{# links}}<a href="{{& url}}">{{& title }}</a>{{/ links}}

我得到了所有的链接,但是我只希望显示第一个链接,听起来很简单,但我找不到任何关于此的文档。

4

3 回答 3

44

此解决方案适用于新版本的 Mustache.js(仅限):

mustache.render("{{a.0}}", {a: ['hi','world']})
=> 'hi'
于 2013-07-30T15:17:32.673 回答
4

@Millad 提出的解决方案几乎对我有用。使用 handlebars.js 虽然我不得不用括号来使用它。

{{ a.[0] }}

=> 你好

res.render('view', { a: ['hello', 'world'] })
于 2017-02-24T23:12:21.747 回答
2

Mustache has 没有逻辑,来自文档

我们称其为“无逻辑”,因为没有 if 语句、else 子句或 for 循环。相反,只有标签。一些标签被替换为一个值,一些什么都没有,而另一些则是一系列值。本文档解释了不同类型的 Mustache 标签。

所以你本质上想要的是一种机制来做if link is the first- 所以你可以在数据方面处理这个问题,只在你的数据中放置一个元素,或者通过添加一块数据,比如当你将数据放入时添加一个像这样的值display并将其设置为“内联”或“无”,然后在您的模板中执行以下操作:

{{# links}}<a href="{{& url}}" style="display: {{display}};">{{& title }}</a>{{/ links}}

然后,稍后,您可以在页面中调用脚本来更改style.display对某些用户或应用程序的操作。

data = data[0]这些是我的第一个,尽管为这个特定模板设置可能更容易。问题是您可能想在某个时候使用整个列表,以评论我需要查看更多您的使用情况以及数据的填充位置。

于 2012-06-21T22:07:11.697 回答