1. ホーム
  2. mustache

[解決済み] 口ひげの{{.}}は何ですか?

2022-03-04 23:08:08

質問

ヒゲのテンプレートに目を通したところ、理解できないこと、説明が見つからないことが出てきました。

{{#something}}word-here={{.}}{{/something}}

を理解するのを手伝ってくれる人はいますか? {{.}} は何をしているのでしょうか?

解決方法は?

ヒゲで。 {{.}} は、コンテキストスタックの最上位にある値を参照する特別なタグです。配列の中をループしている場合は、現在の要素を指します。オブジェクトをコンテキストとして持つセクションをレンダリングしている場合は、そのオブジェクトを指します。

https://github.com/mustache/spec/blob/master/specs/interpolation.yml#L7-L9

つまり、あなたのデータがこのようなものだとしたら。

{
  numbers: [1, 2, 3, 4, 5],
  string: 'Wheee!'
}

...そして、このようなテンプレートが出来上がりました。

{{# numbers }}
 * {{ . }}
{{/ numbers }}

... このようにレンダリングされます。

 * 1
 * 2
 * 3
 * 4
 * 5

テンプレートがこのような場合。

{{# string }}{{ . }}{{/ string }}

... このようにレンダリングされます。

Wheee!

コンテキストスタックの詳細については Mustache.php wiki を参照してください。

https://github.com/bobthecow/mustache.php/wiki/Variable-Resolution

Edit: このタグは Mustache wiki の "implicit iterator" にあることに今気づきました。

https://github.com/bobthecow/mustache.php/wiki/Mustache-Tags#implicit-iterator