2016-04-13 6 views
1

Ich benutze Play Framework 2.5, Umgang mit scala.html und Twirl Templates. Kann mir bitte jemand helfen, zu verstehen, wie man den "Schlüssel" auf meiner Spanne als "val id" einstellt?Play Framework Twirl Vorlage html Element Attribut

Ich kann nicht scheinen, dass dies innerhalb von HTML-Element-Attributen zu arbeiten. Ich bin mir nicht sicher, welche Syntax zu verwenden, meine Val-ID zu meinem Schlüssel Span geschrieben.

Danke für jede Hilfe.

@{ 
 
    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> 
 
    } 
 
}

Antwort

2

Sie können nicht html in einem @{ } Block hinzuzufügen. Was Sie wollen, ist wahrscheinlich so etwas wie folgt:

Deklarieren von Variablen in diesen Vorlagen ist nicht so einfach wie es scheint. Check the documentation für einige Beispiele.

+0

Danke für die Antwort. Ich fing an, die Beschränkungen nach dem Posten zu erkennen. Ihre Lösung wird funktionieren. Ich werde meine eigenen für weitere Referenzen zur Verfügung stellen, da diese Arten von Beispielen schwer zu finden waren. – Mule

1

Ich würde eine @defining() {} verwenden, um mein Problem zu lösen. Twirl hat sonst nicht, wenn. Ich werde einfach auf if-Anweisungen zurückgreifen. So habe ich es gelöst.

@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> 
 
    } 
 
}