Play .scala.html テンプレートの 1 つに次のコードがあります。
@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}>
...引用符なし!なんてこった。