2012-06-21 11 views
20

私はひげ剃りテンプレートエンジンを使用していますが、最初の項目を長いリストに表示したいだけですが、はリストの最初の項目をMustacheを使って表示します

私が使用している場合:

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

私はすべてのリンクを取得するには、しかし、私は最初の一つだけを表示したい、簡単に聞こえるが、私はこの上の任意のドキュメントを見つける傾けます。

+0

あなたは正しいものとして、以下の答えを設定することはできますか? http://stackoverflow.com/a/17950970/171711 – Coyote

答えて

36

このソリューションは、Mustache.js(のみ)の新しいバージョンで作業しています。 handlebars.jsを使用していますが、括弧で囲んで使用しなければなりませんでした。

{{ a.[0] }} 

=>こんにちは

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

これは今正しい答えとして設定する必要があります。 – Coyote

+0

配列の中に何個あるか分からずに最後の位置を取得したい場合はどうすればいいですか? – Periback

2

口ひげがdocsから、ロジックを持っていないしています

else文、 句場合、またはループのために何があるので、私たちは「ロジックレス」と呼んでいません。代わりにタグだけがあります。いくつかのタグは が値で置き換えられ、何も何も置き換えられず、一連の値が一連の値に置き換えられます。 このドキュメントでは、さまざまな種類のMustacheタグについて説明します。

それであなたは、本質的に欲しいのはif link is the firstを行うための仕組みである - ので、あなたは、データ側で、あなただけのデータで1つの要素を置くことによって、またはあなたがいるときのようなデータのチャンクを追加することによって、これを処理することができますないあなたの中にあなたのデータを入れてdisplayのように値を追加し、テンプレートにし、「インライン」または「none」にそれを設定します。

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

を次に、後で、あなたはいくつかのstyle.displayを変更するにはページ内のスクリプトを呼び出すことができますユーザーまたはアプリケーションのアクション。

これは私の最初ですが、この特定のテンプレートにはdata = data[0]を設定する方が簡単かもしれません。問題はおそらく、ある時点でそのリスト全体を使用したいと思っています。あなたの使用状況やデータがどこから来ているのかを確認する必要があるとコメントしています。ほとんど私のために働い提示@Millad

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

これはありがとう..私はあなたが言っているものを見ることができますが、それは奇妙に見えます。私はあなたが提案したモデルのプレレンダリングを変更しました。おかげで – Alex

+0

ええ、アイデアはMustacheが高速ですが、他のテンプレートライブラリの論理的なオーバーヘッドはありません。 Mustacheがあなたのニーズに合っていない場合は、他のテンプレートライブラリを見るかもしれません。ここで良い議論があります:http://www.quora.com/JavaScript/What-is-the-best-JavaScript-templating-framework-and-why – artlung

1

ソリューション:

関連する問題