我有一个带有嵌套映射列表的表单,但是在模板中迭代它时遇到问题。表格看起来像这样
val assignmentForm : Form[AssignmentData] = Form(
"acceptedSign" -> nonEmptyText(),
mapping("activities" -> list (
mapping("activityId" -> optional(text),
"activityStatus" -> optional(text))
(ActivityData.apply)(ActivityData.unapply))
)(AssignmentData.apply)(AssignmentData.unapply)
)
我将此表单传递到模板中并尝试遍历 事件 .到目前为止,结果只有编译器错误或表单的完整元数据转储。
这提供了完整表格的元数据+数据转储,其中包括事件。 ( LI 标签是一个包含输入字段的标签导航器)
@repeat(assignmentForm("activities")) { activity =>
<li>@activity("activityId")</li>
}
迭代排序有效(代码运行),但从用户的角度来看,它完全无法使用。
我也尝试过各种 for 循环,只给我编译器错误,说
value map is not a member of play.api.data.Field
我的问题是:
最佳答案
解决方法就这么简单,navtab.scala.html
@**
* Generate an LI element
*@
@(field: play.api.data.Field)
<li><a href='#@field.id' data-toggle="modal">@field("activityStatus").value</a></li>
然后对模板中的映射集合重复此操作
<ul id="activities">
@repeat(assignmentForm("activities"), min=0) { activity =>
@navtab(activity)
}
</ul>
关于scala - 如何使用列表映射呈现表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12885880/