我正在使用胡子模板引擎,我只想显示长列表中的第一项,但似乎无法找到这样做的文档?
如果我使用:
{{# links}}<a href="{{& url}}">{{& title }}</a>{{/ links}}
我得到了所有链接,但是我只希望显示第一个链接,听起来很简单,但我找不到任何文档。
答案 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'] })