Playframework 2.0 在playframework scala模板中声明和传递列表

Playframework 2.0 在playframework scala模板中声明和传递列表,playframework-2.0,Playframework 2.0,我有一个header.scala.html文件,它需要一个字符串和一个列表参数 ie@(标题:String)(脚本:List[String]) 其他scala文件将引用标题并传递特定列表,例如 @import scala._ @{val jsList = List("a", "b")} @views.html.header("title"){jsList} 然而,我得到了Compliation错误-类型不匹配;找到:play.api.templates.Html必需:java.util.Lis

我有一个header.scala.html文件,它需要一个字符串和一个列表参数

ie
@(标题:String)(脚本:List[String])

其他scala文件将引用标题并传递特定列表,例如

@import scala._
@{val jsList = List("a", "b")}
@views.html.header("title"){jsList}
然而,我得到了Compliation错误-类型不匹配;找到:play.api.templates.Html必需:java.util.List[String]

一定有一些语法问题,我没有看到。。。有人吗


谢谢。

您不能在播放模板中声明变量(像那样)。()

您可以做的第一件事是,如果在模板中只需要一次值:

@views.html.header("title")(List("a","b"))
请注意,您应该使用
,我认为
{}
之间的所有内容都被解释为HTML代码(因此您的类型不匹配错误)

但是,如果您在模板中多次需要它,那么这不是一种合适的方法。然后可以使用
定义
块:

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

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

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

  @* ... *@
}
定义(列表(“a”、“b”){jsList=> @*使用一次*@ @views.html.header(“title”)(jsList) @*使用两次*@ 我的列表包含@jsList.size元素

@* ... *@ }