是否可以创建通用模板?
伪代码:
@(myForm: Form[T])
所以我可以像这样重用它们:
@inputText(
myForm("title"),
'_label -> "title"
)
- 如果是,我该怎么做?
是否可以创建通用模板?
伪代码:
@(myForm: Form[T])
所以我可以像这样重用它们:
@inputText(
myForm("title"),
'_label -> "title"
)
为此使用魔术下划线:
@(form: Form[_])
这在 Scala 中称为存在类型,大致意思是“存在类型参数但我不在乎它是什么”。
我不喜欢这种@(form: Form[_])
方法,因为它把类型安全抛到了窗外。
传入 时ok(form.render(userform))
,您@form("lastNme")
在模板中不会从编译器获得任何帮助,但如果在测试期间未捕获,您将收到运行时错误。
我正在做的是为常见形式(例如会员注册和会议注册,或联赛统计和球队统计等)提供接口(或 play 2 scala 中的特征);这样,在编译时,粗手指的错别字等就会被捕获。
是的,要处理的样板越多,但是从围栏的动态语言方面来看,我处理运行时错误越少越好......
你试过了吗?
在app/views
包中创建新的 vie:pseudo.scala.html
@(someParam: String)
<h1>This is my pseudo template</h1>
<div>And there is some param: <b>@someParam</b></div>
然后在任何其他视图中,您可以像这样使用它:
...
<div>@pseudo("param pam pam")</div>
...
当然你的参数不需要是String
唯一的,所以你可以通过那里Form[T]
,,,List[T]
或其他任何东西。