only show the first item in list using Mustache

泪湿孤枕 提交于 2019-11-30 13:45:39

问题


I am using the mustache template engine and I only want to display the first item in a long list but cant seem to find the docs for doing so?

if I use:

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

i get all of the links, however i only want the first one to be displayed, sounds easy but I cant find any docs on this.


回答1:


This solution is working with the new version of Mustache.js (only):

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



回答2:


The solution @Millad presented almost worked for me. Using handlebars.js though I had to use it with brackets.

{{ a.[0] }}

=> hello

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



回答3:


Mustache has does not have logic, from the docs:

We call it "logic-less" because there are no if statements, else clauses, or for loops. Instead there are only tags. Some tags are replaced with a value, some nothing, and others a series of values. This document explains the different types of Mustache tags.

So what you essentially want is a mechanism to do an if link is the first - so you can handle this on the data side, by only putting 1 element in your data, or by adding a chunk of data like when you're putting your data in you add a value like display and set it to 'inline' or 'none' then in your template do:

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

Then, later, you can call scripting in page to change the style.display on some user or application action.

Those are my first though it may simply be easier to set data = data[0] for this particular template. The problem is you probably WANT to use that whole list at some point, to comment on that I'd need to see more your usage and where the data's populating from.



来源:https://stackoverflow.com/questions/11147373/only-show-the-first-item-in-list-using-mustache

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!