仅使用Mustache显示列表中的第一项

时间:2012-06-21 21:56:56

标签: javascript mustache

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

如果我使用:

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

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

3 个答案:

答案 0 :(得分:38)

此解决方案正在使用新版本的Mustache.js():

mustache.render("{{a.0}}", {a: ['hi','world']})
=> 'hi'

答案 1 :(得分:2)

来自docs

的小胡子没有逻辑
  

我们称之为“无逻辑”,因为没有if语句,否则   条款,或循环。相反,只有标签。有些标签是   用一个值替换,一些什么都没有,其他一些值。   本文档解释了不同类型的Mustache标记。

所以你真正想要的是一种执行if link is the first的机制 - 所以你可以在数据方面处理这个问题,只需在数据中放入1个元素,或者添加一些数据,就像你在'重新添加您的数据,添加display之类的值并将其设置为'inline'或'none',然后在模板中执行:

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

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

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

答案 2 :(得分:2)

解决方案@Millad几乎为我工作。使用handlebars.js虽然我不得不使用括号。

{{ a.[0] }}

=&GT;喂

res.render('view', { a: ['hello', 'world'] })