我有一个header.scala.html文件,需要一个字符串和一个列表参数
即 @(title: String)(scripts: List[String])
其他scala文件将引用标头并将传递特定列表,例如
@import scala._
@{val jsList = List("a", "b")}
@views.html.header("title"){jsList}
Run Code Online (Sandbox Code Playgroud)
但是我得到了Compliation错误 - 类型不匹配; 发现:需要play.api.templates.Html:java.util.List [String]
必须有一些我没有看到的语法问题......任何人?
谢谢.
您无法在Play模板中声明变量(如此).(这是关于它的谷歌小组讨论)
您可以做的第一件事是,如果您只需要模板中的值一次:
@views.html.header("title")(List("a","b"))
Run Code Online (Sandbox Code Playgroud)
请注意,您应该使用(和),我相信它们之间的所有内容都{}被解释为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>
@* ... *@
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1384 次 |
| 最近记录: |