使用play 2.4.6为scala数组中的每个值创建一个html元素

使用play 2.4.6为scala数组中的每个值创建一个html元素,scala,playframework-2.4,Scala,Playframework 2.4,对Scala来说是很新的。我正在尝试创建一个网页,根据数组的值加载按钮,因此我不必在模板中为每个按钮创建新的按钮元素。我正在使用Scala和Play 2.4.6 我想我应该像这样将数组传递到template.scala.html: @(buttonGroup1: Array)(buttonGroup2: Array)(buttonGroup3: Array) case class Button(id: String, text: String, ...) @(buttonGroup1: Se

对Scala来说是很新的。我正在尝试创建一个网页,根据数组的值加载按钮,因此我不必在模板中为每个按钮创建新的按钮元素。我正在使用Scala和Play 2.4.6

我想我应该像这样将数组传递到template.scala.html:

@(buttonGroup1: Array)(buttonGroup2: Array)(buttonGroup3: Array)
case class Button(id: String, text: String, ...)
@(buttonGroup1: Seq[Button], buttonGroup2: Seq[Button], buttonGroup3: Seq[Button])

@for(button <- buttonGroup1) {
  <button id="@button.id">@button.text</button>
}

...
val content = views.html.buttons(Seq(Button("foo", "bar")), ..., ...)

我只是不确定如何遍历数组来生成所有按钮。

您可以定义一种按钮类型,如下所示:

@(buttonGroup1: Array)(buttonGroup2: Array)(buttonGroup3: Array)
case class Button(id: String, text: String, ...)
@(buttonGroup1: Seq[Button], buttonGroup2: Seq[Button], buttonGroup3: Seq[Button])

@for(button <- buttonGroup1) {
  <button id="@button.id">@button.text</button>
}

...
val content = views.html.buttons(Seq(Button("foo", "bar")), ..., ...)
然后在您的视图中使用它,如下所示:

@(buttonGroup1: Array)(buttonGroup2: Array)(buttonGroup3: Array)
case class Button(id: String, text: String, ...)
@(buttonGroup1: Seq[Button], buttonGroup2: Seq[Button], buttonGroup3: Seq[Button])

@for(button <- buttonGroup1) {
  <button id="@button.id">@button.text</button>
}

...
val content = views.html.buttons(Seq(Button("foo", "bar")), ..., ...)