scala - 从另一个模板 Play Framework 调用辅助函数

标签 scala playframework

我有一个辅助文件 utils.scala.html,如下所示:

@renderTableRow(columnTag: String, columns: Seq[String]) = {
<tr>
@for(column <- columns) {
    <@columnTag>
        @column
    </@columnTag>
}
</tr>
}

我想从我的其余 View 文件中调用这个辅助函数来创建表头。
@import views.html.mycommon.utils

@renderQuotesTable() = {
<table class="table table-bordered table-striped">
  <thead>
       @utils.renderTableRow("th", Seq("Name", "Date of Birth", "Age"))
  </thead>
  <tbody>
  </tbody>

}

但是,我收到以下错误

值 renderTableRow 不是对象 views.html.mycommon.utils 的成员。

我在这里错过了什么?

最佳答案

您不能导入另一个模板的声明函数。执行 sbt doc并且在生成的 Scala Doc 中没有关于 util 对象中的 renderTableRow 的线索。正如您在生成的模板源中所见,“renderTableRow”被包装到 apply 方法中:“target/scala-2.10/src_managed/main/views/html/mycommon/utils.template.scala”。

对于您想在另一个模板中使用的每个函数,您必须在真正的 Scala 单例对象中创建模板或函数。

关于scala - 从另一个模板 Play Framework 调用辅助函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16093439/

相关文章:

http - 如何使喷雾 jar 客户端遵循重定向

Java apache commons FTP,如何将图像文件下载到BufferedImage

java - play framework接收paypal IPN请求

Scala/Play/Akka : delay action response

json - 使用 Play Framework 2.1 的 Option 的 JsObject 中的空值

java - 计算两个时区 Scala/Java 之间偏移的最简单方法

scala - 如何模拟 ActionBuilder 的 BodyParser.Default 参数?

javascript - Playframework Comet 套接字在客户端捕获断开连接

datetime - 使用 Play Framework 中的 YAML 文件将初始数据保存为日期格式(如 2012-02)

scala - 向 ActorSystem 内的所有 Actor 发送消息