4

文字列とリストパラメーターを期待する header.scala.html ファイルがあります

すなわち @(title: String)(scripts: List[String])

他のscalaファイルはヘッダーを参照し、特定のリストを渡します。

@import scala._
@{val jsList = List("a", "b")}
@views.html.header("title"){jsList}

ただし、 Compliation error - type mismatch; が発生します。見つかりました: play.api.templates.Html 必須: java.util.List[String]

私が見ていない構文の問題があるに違いありません...誰か?

ありがとう。

4

1 に答える 1

5

Play テンプレートで (そのような) 変数を宣言することはできません。(ここにそれに関するGoogleグループの議論があります

テンプレートで一度だけ値が必要な場合、最初にできることは次のとおりです。

@views.html.header("title")(List("a","b"))

(andを使用する必要があることに注意してください。)その間のすべてが{}HTML コードとして解釈されると思います (したがって、型の不一致エラー)。

ただし、テンプレートで複数回必要な場合、これは適切なアプローチではありません。definingその後、ブロックを使用できます。

@defining(List("a","b")) { jsList =>

  @* using it once *@
  @views.html.header("title")(jsList)

  @* using it twice *@
  <p>My list contains @jsList.size elements.</p>

  @* ... *@
}
于 2013-06-07T13:36:30.347 に答える