Play documentation提到隐式可重用块。你可以从那里提到的单行扩展并在下面复制,以显示如何在Play html模板中使用这些块吗?
@implicitFieldConstructor = @{ MyFieldConstructor() }
答案 0 :(得分:1)
实际上,这个想法在Custom Field Constructors documentation的更远处扩展,您可以在其中找到与表单构造相关的示例。
在Play框架中创建表单时,您可以使用表单助手来简化可重用输入的创建。 Play包含几个内置帮助器,每个辅助器都将一个字段构造函数作为隐式参数。
想象一下在视图中创建的以下表单。
@implicitFieldConstructor = @{ helper.FieldConstructor(myFieldConstructorTemplate.f) }
@helper.form(action = routes.Application.handlePost()) {
@helper.inputText(userForm("name"))
@helper.inputText(userForm("surname"))
@helper.inputText(userForm("login"))
@helper.inputText(userForm("password"))
}
inputText apply方法将 FieldConstructor 作为隐式参数。如您所见,隐式模板用于为apply方法提供值,而不将其显式传递给每个 inputText 调用。由于隐式参数,视图中的表单定义看起来更简洁,更清晰。