play 2.0.3 以降はelse if
ビューでサポートされているのだろうか? 私はそのようにコーディングしなければならないことを読んだだけです:if {...}else{if{...}else{...}}
それは信じられません。
7 に答える
2 番目の if の前に @ を使用しました。
@if (true) {
...
} else { @if (true) {
...
} else {
...
}}
私もゲットできました
@{if (true) "foo" else if (true) "bar" else "baz"}
仕事に。ほとんどのプログラミング言語は、字句トークンとして「else if」をサポートしていないことに注意してください。これらは別個のコマンドです。「else」コマンドによって実行されるコードのブロックは、たまたま「if」ステートメントです。
また、XHTML を句と組み合わせることができることにも注意してください。
@{if (true) <b>foo</b> else if (false) "bar" else "baz"}
通常は状態ロジックをコントローラーにプッシュすることをお勧めします。そうすれば、共有コンポーネントに独自のサブビューを持たせて、状態ごとに異なるビューを持つことができます。
いいえ、そうではありません。それはあなただけを許可しますif(condition) {then...} else {otherwise...}
より多くの可能性については、パターン マッチングを使用する必要があります(PHP の に似ていますswitch()
) 。
この場合_
はデフォルトのオプションです。
Play Autheticate の以前のバージョンのサンプル (現在、コントローラーのリフレクションで同じことが行われています)
@(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)}
}
}
したがって、おそらく最良のオプションは、コントローラーの状態を解決し、それをパラメーターとしてビューに渡すことでしょうか?
いいえ、「elseif」はscalaテンプレートではサポートされていません:Play Framework 2.0はテンプレートのネストされたifステートメントをサポートしていますか?
パターンマッチングを使用することも、他の場所に配置することもできます。