我想将一些辅助函数放在另一个文件中,因为它们会被过度重用。我拿了 Computer-Databse 样本的列表文件:
我在 app/views 包下创建了一个名为“listing.scala.html”的新文件,并将@link 函数从原始文件移到其中。这个新文件如下所示:
@(currentSortBy: String, currentOrder: String, currentFilter: String)
@****************************************
* Helper generating navigation links *
****************************************@
@link(newPage:Int, newSortBy:String) = @{
var sortBy = currentSortBy
var order = currentOrder
if(newSortBy != null) {
sortBy = newSortBy
if(currentSortBy == newSortBy) {
if(currentOrder == "asc") {
order = "desc"
} else {
order = "asc"
}
} else {
order = "asc"
}
}
// Generate the link
routes.Application.listPerfil(newPage, sortBy, order, currentFilter)
}
所以,在我的原始文件中,我用这个替换了@link 调用:
<a href="@listing(currentSortBy, currentOrder, currentFilter).link(0, key)">@title</a>
问题是,当我尝试编译时出现此错误:
value link is not a member of play.api.templates.Html
但根据文档(http://www.playframework.org/documentation/2.0.4/ScalaTemplateUseCases),它似乎没问题。
有什么猜测吗?