scala - 如何使用列表映射呈现表单

标签 scala playframework-2.0

我有一个带有嵌套映射列表的表单,但是在模板中迭代它时遇到问题。表格看起来像这样

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/

    相关文章:

    scala - 如何在 Spark 流中创建停止条件?

    scala - 从intellij运行scoverage

    scala - 引用未完全初始化

    scala - scala中 `=> String`的类型是什么?

    scala - 直接应用提升功能没有给出预期的功能

    javascript - Play Framework 2 : JavaScript gets duplicated as a result of minification (google closure compiler)

    scala - 为什么在 Play 框架 Controller 中不需要引号?

    json - 使用 Play 2.1.1 在 JSON 中迭代和重新格式化数组

    scala - 带有隐式参数的泛型函数

    scala - 将 Scala Anorm 记录转换为特定对象