2016-04-13 25 views
1

私はscala.htmlとTwirlテンプレートを扱うPlay Framework 2.5を使用しています。誰かが、私のスパンの「キー」を私の「ヴァルID」に設定する方法を理解できるように助けてくれますか?Play Framework Twirlテンプレートhtml要素の属性

html要素の属性内でこれが機能しないようです。使用する構文がわからないため、自分のスパンキーにval IDを書き込みます。

ありがとうございました。あなたは@{ }ブロック内のHTMLを追加することはできません

@{ 
 
    val rank = player.rank 
 
    val id = player.id 
 

 
    if(rank == "Great") { 
 
     <span key="{id}">{rank}</span> 
 
    } else if(rank == "Good") { 
 
     <span key="{id}">{rank}</span> 
 
    } 
 
}

答えて

2

。あなたが望むのはおそらく次のようなものでしょう:

@if(player.rank == "Great") { 
    <span key="@player.id">@player.rank</span> 
} else if(player.rank == "Good") { 
    <span key="@player.id">@player.rank</span> 
} 

これらのテンプレートで変数を宣言するのは、それほど簡単ではありません。いくつかの例ではCheck the documentationです。

+0

感謝。私は投稿後の制限を理解し始めました。あなたのソリューションは機能します。私はこれらのタイプの例が見つけにくいので、私はもっと参考にしてくれます。 – Mule

1

問題を解決するために@defining(){}を使用します。 Twirlはifを持っていません。私はif文をデフォルトにします。これが私が解決した方法です。返信用

@defining(player.rank) { rank => 
 
    @defining(player.id) { id => 
 
     @if(rank == "Great") { 
 
      <span key="@id">@rank</span> 
 
     } 
 
     @if(rank == "Good") { 
 
      <span key="@id">@rank</span> 
 
     } 
 
     
 
     <select key="@id"> 
 
     @for((key, value) <- model.getAllRankings()){ 
 
      <option id="@key" @if(rank == value) {selected}>@value</option> 
 
     } 
 
     </select> 
 
    } 
 
}

関連する問題