私はかなり Java に精通したコーダーで、Play2 フレームワークに取り掛かります。
私は小さなテンプレートを定義していますが、名前付きパラメーターをテンプレートに渡す方法として「オプション」を使用するのは良さそうだと思いました。
したがって、私のテンプレート (picker.scala.html など) では、これらのパラメーターを使用しています。
@(field: Field, label: String, options: Seq[(String, String)])
そして、私がそれを使用しているページで私はやっています
@picker(myForm("shoesize"), "Your Shoe Size", options("color" -> "black"))
質問: 「ピッカー」テンプレートのオプションはどのように処理すればよいですか? options.get("color") のようなことはできますか?
関連するドキュメントへのポインタが含まれている場合、「RTFM」は完全に有効な答えです...
編集: @options.get(0)._2 などを実行できることがわかりました。オプションを使用するポイントがありませんか? 文字列、文字列のペアのシーケンスではなく、名前付きパラメーターのマップを渡すより良い方法はありますか?
解決済み
以下の回答のおかげで、これが私がやったことです:
私の「ピッカー」テンプレートには、次の署名があります。
@(field: Field,
label: String,
options: Seq[(String, String)]=scala.collection.immutable.List())
つまり、options パラメータのデフォルトは空のリストなので、オプションは... まあ、オプションです。
次に、ピッカー テンプレートで、次のような「クリア可能な」オプションを探します。
@if(options.toMap.get("clearable").getOrElse("false")=="true"){
clearable is true
} else {
clearable is not true
}
ピッカーを呼び出すと、次のことができます
@picker(myForm("myField"), "Some Label")
また
@picker(myForm("myField"), "Some Label", options("clearable" -> "true))
これが誰にも役立つかどうか、またはそれを行うためのより良い方法があるかどうかはわかりませんが、それは私が望んでいたものであり、機能します.