2012-05-06 21 views

答えて

10

まずあなたは、変数を作成しませんが、は、それが読み取り専用です意味:Play's guideから パスは、私には明確ではありません。

例では、中括弧の中でアクセス可能な値fullNameを作成しています。

@defining("Farmor") { fullName => 
    <div>Hello @fullName</div> 
} 

は自分の中括弧ですべてを受け入れるあなたのテンプレートにグローバルにアクセス可能である値を定義するにはこんにちはFarmor

を印刷します。

など。

@defining("Value") { formId => 
    @main("Title") { 
    @form(routes.Application.addPost, 'id -> formId) { 
     @inputText(name = "content", required = true) 
     <input type="submit" value="Create"> 
    } 
    } 
} 

この例では、値formId anywereを使用できます。

+10

醜い、複雑な! ....ビューを本当にきれいにし、HTMLコーダーをフレンドリーにするためのすべてのベロシティ/フリーメーカの努力のために。ファッションは今、HTMLビューを全面的に混乱させているようです。*一口* – monzonj

+1

私は同意します!私はこの構文を非常に嫌いです。 – droope

2

それは、あなたが値を持っている@fullName変数を使用することができます、サンプルのコードを使用してブロックにまたがる、簡単です:あなたは@defining構文を使用したくない場合は、reusable blockを定義することができます

user.firstName + " " + user.lastName 
9

をこれはあなたがそれを使用するたびに評価されます:あなたはまた、ブロックに引数を渡すことができ、これと同じ構文で

@fullName = @{ 
    user.firstName + " " + user.lastName 
} 

<div>Hello @fullName</div> 

を: https://github.com/playframework/Play20/blob/master/samples/scala/computer-database/app/views/list.scala.html

+0

再利用可能なブロックは使用するたびに再実行されますが、定義ブロックの値は1回だけ計算されます。 – kdkeck

+0

ありがとう、編集されました。 – OlivierBlanvillain

関連する問題