在Play2框架模板引擎中传递对模板类的引用

时间:2014-10-18 17:17:46

标签: scala playframework-2.0 twirl

我有一个field.scala.html,它应该将控件作为输入并进行渲染。

现在我喜欢这个:

@field("shop", "name", true) { (modelName, fieldName, required) =>
  @textInput(modelName, fieldName, required)
}

但我想这样做: @field(“shop”,“name”,true)(textInput)

我看到有两种方法可以做,但不确定是否可能:

  1. 以某种方式通过反射调用textInput.apply并使用适当的 参数。
  2. 使textInput实现一些特征和字段 需要这个特定特征的实例(更安全类型)
  3. 也许有更好的方法?

1 个答案:

答案 0 :(得分:1)

模板只是功能。如果field.scala.html采用:

(String, String, Boolean) => Html

textInput.Scala.html具有以下参数声明:

@(modelName: String, fieldName: String, required: Boolean)

然后你想做的就是工作。如果没有尝试传递textInput.apply。