2017-01-07 7 views
1

Playで@の使用方法をほとんど推測しています。 if(の間に空白がない場合は、次のコードがコンパイルされますが、それ以外の場合はコンパイルされません。また、私はifのために@を使用しなければならなかったが、elseまたは閉じ括弧は使用しなかった。Playフレームワークのビュークラスで@を使用することに関する混乱

質問:

  1. 私はScalaで書かれたすべてのコードのため、@を使うべきではないでしょうか。

  2. Playフレームワークビューで@を使用する際のルールは何ですか?

これはコンパイルされません:

@if (userForm.value.isDefined) { 

はこれが行われます。テンプレート言語で

@if(userForm.value.isDefined) { 
      <h1>@userForm.get.name (userForm.get.age)</h1> 
      <h2>Lives at @userForm.get.address.fullStreet</h2> 
     **} else { //no @ required!** 
      <h1>Feed User Data</h1> 
      @helper.form(action=routes.Data.post){ 
      @helper.inputText(userForm("name")) 
      <input type="submit" name="send" value="submit"/> 
      } **//no @ required for closing braces!** 
     } 
+0

twirlテンプレートでは、 '@ xxxx'は" scala-code-block "を開始するので、' @ 'を再度使用する必要はありません。 –

+1

この[documentation](https://www.playframework.com/documentation/2.5.x/ScalaTemplates) –

+0

を参照することができます。テンプレートはちょっとひどいですし、経験に応じて動作しない場合もあります。 https://www.playframework.com/documentation/2.5.x/ScalaTemplatesのドキュメントをご覧ください。 – pedrorijo91

答えて

1

特殊文字@は、多くの場合、プレイのように(the magic characterまたはtwirlと呼ばれていますテンプレートエンジン)。 documentationは、動的ステートメントの開始を示します。

Scalaで書かれたすべてのコードに@を使用してはいけませんか? 動的ステートメントのを開始

だけなし、。あなたがすでに気づいたように、それはifステートメントの一部であるため、elseブロックには魔法の文字@は必要ありません。

Playフレームワークビューで@を使用する際のルールは何ですか?

私が考えることができる唯一のルールは、明示的に動的ステートメントを閉じる必要はないということです。また@@@と逃げさせてください。 [email protected]@doe.com

続きを読むPlay's template enginecommon use casesを参照してください。