我的 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}>......没有引号!该死的。