Play Framework 构建 select 选项,包括无操作选项

Play Framework building select options including a no-op option

我正在创建一个带有 select 元素的搜索表单,其中 "Any" 作为第一个选项。其余选项是小部件 ID 和名称。

变量myWidgets是三个实例的列表,我想要的结果是这样的:

<select id="widget" name="widget">
    <option value="-1">Any</option>
    <option value="10">Widget Ten</option>
    <option value="20">Widget Twenty</option>
    <option value="30">Widget Thirty</option>
<select>

这是我用来生成它的 Scala:

@helper.select(searchForm("widget"),
    Seq[(String, String)](("-1", "Any")) ++ 
    myWidgets.map(w => (new Tuple2[String, String](w.id.toString(), w.name)))
)

select()的第二个参数取一个Seq[(String, String)]。如图所示,但感觉很笨重。有没有更好(或更合适)的方法来做到这一点?

那么数据是从哪里来的呢?对于选择,我使用 MyEnum extends Enumeration,我的 MyEnum class 有一个方法,如:

def toHtml: Vector[(String, String)] =  
("", "") +: super.values.toVector.map(m => (m.id.toString, m.toString))

在所有选择的顶部添加一个空白选项。