我开始浏览一些小胡子模板,而且我发现了一些我不明白/无法找到解释的东西。
{{#something}}word-here={{.}}{{/something}}
有人可以帮我理解{{.}}
正在做什么吗?
答案 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}}
可用胡子,你可能知道。我相信胡须变量可以被允许{{.}}
,而不必只是字母或数字。他们可能接受下划线等。它们可能不遵循常规变量命名约定。我不确定,以前从未测试过,你应该。此外,编译文件时会忽略不存在的空变量(空值),因此您可以忽略它(取决于)。