小胡子里的{{。}}是什么?

时间:2014-08-15 01:34:42

标签: mustache

我开始浏览一些小胡子模板,而且我发现了一些我不明白/无法找到解释的东西。

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

有人可以帮我理解{{.}}正在做什么吗?

3 个答案:

答案 0 :(得分:9)

在Mustache中,{{.}}是一个特殊标记,指向上下文堆栈顶部的值。如果您循环遍历数组,则它是当前元素。如果您使用对象作为上下文渲染部分,则它引用该对象。

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

编辑:我刚刚意识到这个标签位于Mustache wiki中的“隐式迭代器”下:

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

答案 1 :(得分:1)

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

上述语法用于迭代Mustache中的索引数组或索引列表。 所以你有一个索引数组或一个名为" 某事"的列表,然后你迭代这个数组并通过用" &#34。 (包含括号,表示它是Mustache语法)

致谢:http://dwellupper.io/post/22/accessing-array-values-in-mustache-php

答案 2 :(得分:0)

抱歉,我无法对此帐户发表评论,但我会将答案作为评论。

变量{{variableName}}可用胡子,你可能知道。我相信胡须变量可以被允许{{.}},而不必只是字母或数字。他们可能接受下划线等。它们可能不遵循常规变量命名约定。我不确定,以前从未测试过,你应该。此外,编译文件时会忽略不存在的空变量(空值),因此您可以忽略它(取决于)。