Je me demande si le jeu 2.0.3 et supérieur prend en charge else if
dans les vues? Je lis seulement que l'on doit coder de cette façon: if {...}else{if{...}else{...}}
ne peut pas croire cela.
J'ai utilisé un @ avant le second si:
@if (true) {
...
} else { @if (true) {
...
} else {
...
}}
La réponse de @Todd Flanders est juste. Dans un wrapper @ {}, vous pouvez écrire votre code normal Scala. Exemple
@{
if (profile.sex == 0) {
<p class="col-md-6">Other</p>
} else if (profile.sex == 1) {
<p class="col-md-6">Male</p>
} else {
<p class="col-md-6">Female</p>
}
}
J'ai également pu obtenir
@{if (true) "foo" else if (true) "bar" else "baz"}
travailler. Gardez à l'esprit que la plupart des langages de programmation ne prennent pas en charge "else if" comme jeton lexical. Ce sont des commandes distinctes. Le bloc de code exécuté par la commande "else" se trouve être une instruction "if".
Notez également que vous pouvez mélanger XHTML avec la clause:
@{if (true) <b>foo</b> else if (false) "bar" else "baz"}
Je suis d'accord avec biesior que c'est généralement une bonne idée de pousser la logique d'état dans le contrôleur, alors vous pouvez avoir différentes vues pour différents états, avec des composants partagés ayant leurs propres sous-vues.
Non, non. Il vous permet uniquement pour if(condition) {then...} else {otherwise...}
Pour plus de possibilités, vous devez utiliser Pattern Matching (similaire à switch()
) de PHP
Dans ce cas _
est une option par défaut.
Échantillon de la version précédente de Play Autheticate (maintenant la même chose se fait avec les réflexions dans le contrôleur)
@(url: String, token: String, name: String)
@defining(lang().code) { langcode =>
@langcode match {
case "de" => {@_password_reset_de(url,token,name)}
case "pl" => {@_password_reset_pl(url,token,name)}
case _ => {@_password_reset_en(url,token,name)}
}
}
Alors peut-être que la meilleure option pour vous sera de résoudre la condition dans le contrôleur et de la passer en paramètre à la vue?
Maintenant if else if
est pris en charge dans le dernier cadre de jeu. La discussion est ici https://github.com/playframework/twirl/issues/
Vous pouvez utiliser comme ceci:
@if(something) {
...
} else if (somethingElse) {
...
} else {
...
}
Non, "else if" n'est pas pris en charge dans scala templates: Play Framework 2.0 prend-il en charge les instructions imbriquées if dans le modèle?
Vous pouvez utiliser la correspondance de motifs ou vous pouvez la mettre à l'intérieur.