Play2テンプレートで解釈されない変数
-
02-01-2020 - |
質問
Play2テンプレートエンジンに問題があります。いくつかの変数はレンダリングプロセス中に解釈されません。
変数{key.getKey}は、二重引用符で遅いときに解釈されません。私はこの問題を解決する方法?
PLAY 2.2.3テンプレート(index.scala.html)
@flash
@(if (flash.size > 0) {
flash.entrySet.iterator.map { key =>
<div class="row">
<div class="large-12 columns">
<div class="alert-box radius {key.getKey}" data-alert="">
{key.getKey.toUpperCase} — {key.getValue}
<a href="#" class="close">×</a>
</div>
</div>
</div>
}
})
.
HTML出力:
{"success": "The item has been created"}
<div class="row">
<div class="large-12 columns">
<div class="alert-box radius {key.getKey}" data-alert="">
SUCCESS — The item has been created
<a href="#" class="close">×</a>
</div>
</div>
</div>
.
再生2.2.3テンプレート(index.cscala.html)@ variable
@flash
@(if (flash.size > 0) {
flash.entrySet.iterator.map { key =>
<div class="row">
<div class="large-12 columns">
<div class="alert-box radius @{key.getKey}" data-alert="">
{key.getKey.toUpperCase} — {key.getValue}
<a href="#" class="close">×</a>
</div>
</div>
</div>
}
})
.
HTML出力:
{"success": "The item has been created"}
<div class="row">
<div class="large-12 columns">
<div class="alert-box radius @{key.getKey}" data-alert="">
SUCCESS — The item has been created
<a href="#" class="close">×</a>
</div>
</div>
</div>
. 解決
編集:これがScalaまたはJavaのどちらであったかどうかは不明なので、私はPlay Javaを使って作業するために私の答えを修正しました。
Javaでテンプレートがわずかに異なるように見え、if
ステートメントの周囲の括弧は物事をめちゃくちゃにしていました。空のイテレータのマッピングは何もしないので、とにかくif
ステートメントを必要としません。これは機能します:
@flash.entrySet.iterator.map { key =>
<div class="row">
<div class="large-12 columns">
<div class="alert-box radius @{key.getKey}" data-alert="">
@{key.getKey.toUpperCase} — @{key.getValue}
<a href="#" class="close">×</a>
</div>
</div>
</div>
}
.
そしてあなたが本当にif
を望んでいる場合:
@if(flash.size > 0) {
(above code)
}
. 所属していません StackOverflow