我的 Play .scala.html 模板之一中有以下代码:
@formats.map(format => {
<div id="@format">
{format}
</div>
})
formats
是一个Seq
枚举。创建的 div 具有正确的“格式”内容(每个都包含不同的格式字符串),但是,id 从未正确设置。每个 div 的 id 按字面意思设置为“@format”,如下所示:
<div id="@format">
OneOfTheFormats
</div>
<div id="@format">
AnotherFormat
</div>
我试过制作代码<div id="{format}">
,,<div id={format}>
但<div id=@format>
没有运气。这很奇怪,因为我在其他模板中做过类似的事情,但可能因为特殊map
情况而无法正常工作......也许是因为format
是创建的参数,而不是传递到模板中?
更新:
正如下面有人建议的那样,我尝试了以下方法:
@{
def createDiv(f: String) = {
<div id="@f">
{f}
</div>
}
formats.map(f => {
createDiv(f.toString)
})
}
同样,格式在 div内正确打印,但从未设置 ID。我开始认为这是不可能的。我也试过<div id="@f">
, <div id="{f}">
,<div id="@{f}">
但没有运气。奇怪的是,为了打印 div 内的格式,我必须使用{f}
,而不是@f
。还在这里挣扎……
更新 2:
如果我执行以下操作,它会起作用:<div id={f}>
......没有引号!该死的。