我有一个辅助文件 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/