いくつかのヘルパー関数は過度に再利用されるため、別のファイルに配置したいと思います。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)によると、問題はないようです。
何か推測?