如何在Play中使用用户定义标记中的字段标记!框架?

Ran*_*ggs 5 playframework

现在我有这样的观点有效.

#{form @UserCreate.create()}
    #{field 'user.email'}
        #{text field /}
    #{/field}
#{/form}
Run Code Online (Sandbox Code Playgroud)

使用相应的文本标签定义然后使用该字段(它比这更复杂,只需煮沸到必需品)

<input type="text" id="${_arg.id}" name="${_arg.name}" value="${_arg.value}">
Run Code Online (Sandbox Code Playgroud)

理想情况下,我宁愿拥有它,所以我不必在视图中声明字段,所以它看起来像这样.

#{form @UserCreate.create()}
    #{text 'user.email' /}
#{/form}
Run Code Online (Sandbox Code Playgroud)

使用看起来像这样的标签.

#{field 'user.email'}
    <input type="text" id="${field.id}" name="${field.name}" value="${field.value}">
#{/field}
Run Code Online (Sandbox Code Playgroud)

但是field.value总是返回null,因为用户不在标签的模板绑定中.我现在还不确定如何处理事情.建议?

Per*_*ega 0

由于 #{field} 标签的工作方式,我不相信您能够做您想做的事情(请参阅此处的代码)。

也许最好的方法是基于 Field 标记的代码创建一系列快速标记,而不需要渲染正文的部分(因为您不需要它),即使这可能意味着一些代码重复。完成后,您可以重构以提取一些公共部分并减少重复。