4

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

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

我想从我的其余视图文件中调用这个帮助函数来创建表头。

@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 的成员。

我在这里想念什么?

4

1 回答 1

1

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

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

于 2013-04-21T08:36:46.140 回答