質問

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} &mdash; {key.getValue}
                        <a href="#" class="close">&times;</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 &mdash; The item has been created
                  <a href="#" class="close">&times;</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} &mdash; {key.getValue}
                        <a href="#" class="close">&times;</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 &mdash; The item has been created
                  <a href="#" class="close">&times;</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} &mdash; @{key.getValue}
                <a href="#" class="close">&times;</a>
            </div>
        </div>
    </div>
}
.

そしてあなたが本当にifを望んでいる場合:

@if(flash.size > 0) {
     (above code)
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top