我是一个相当精通 Java 的编码器,进入 Play2 框架。
我正在定义一个小模板,我认为使用“选项”作为将命名参数传递给模板的一种方式看起来不错。
所以在我的模板(比如picker.scala.html)中,我使用了这些参数
@(field: Field, label: String, options: Seq[(String, String)])
在我使用它的页面上,我正在做
@picker(myForm("shoesize"), "Your Shoe Size", options("color" -> "black"))
问题:如何处理“picker”模板中的选项?我可以做类似 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))
我不确定这对任何人都有帮助,或者是否有更好的方法,但这正是我想要的并且它有效。