Question

J'ai un problème avec Play2 moteur de template.Certaines variables ne sont pas interprétées durant le processus de rendu.

La variable {clé.getKey} n'est pas interprété lorsqu'il a été reprise par des guillemets doubles.Comment je peux résoudre ce problème ?

JOUER 2.2.3 MODÈLE (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>
        }
    })

SORTIE 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>

JOUER 2.2.3 MODÈLE (index.scala.html) avec @ 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>
        }
    })

SORTIE 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>
Était-ce utile?

La solution

EDIT: Comme il était difficile de savoir si c'était Scala ou Java précédemment, j'ai révisé ma réponse pour le travail avec le Jeu Java.

Il apparaît que les modèles de travail légèrement différente en Java, et les parenthèses autour de la if déclaration gâcher les choses.Vous n'avez pas vraiment besoin de la if déclaration de toute façon, comme le mappage d'un vide itérateur ne fait rien.Ceci fonctionne:

@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>
}

Et si vous voulez vraiment l' if:

@if(flash.size > 0) {
     (above code)
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top