Play2.0を積極的に学習しながらタグを作成しています。コンピュータ・データベースと呼ばれるサンプルアプリケーションでは、以下のヘルパーは、リストテンプレートで作成されます。Play2.0で@linkを生成するためのタグを作成
@****************************************
* 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
controllers.orders.routes.Work.list(newPage, sortBy, order, currentFilter)
}
私は最善の解決策は、タグを作成するだろうと思ったビューテンプレートでは、このヘルパーを使用したいので、それのための。明らかにこれは動作していないと私は知らないどこか、なぜそれが機能していない、
@(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
controllers.orders.routes.Computer.list(newPage, sortBy, order, currentFilter)
}
しかし:だから私は(私のタグパッケージに)以下でした。
ありがとうございます。 ANSWER WITH
UPDATE:あなたはjavascriptを必須に使用する変数のこと:
だからScalaのテンプレートでは、我々は注意してください(、ちょうどジャワのように、このビューに渡される引数を定義する必要がありますまた渡される!)。テンプレートは、the documentationに記載されている方法でコンパイルされます。
作業タグは次のようになります。
@(newPage : Int, newSortBy : String, currentSortBy: String, currentOrder: String, currentFilter : 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
controllers.orders.routes.Work.list(newPage, sortBy, order, currentFilter)
}