现在,我有一个可行的观点。

#{form @UserCreate.create()}
    #{field 'user.email'}
        #{text field /}
    #{/field}
#{/form}

定义了一个相应的文本标签,然后使用该字段(比这要复杂得多,只是精简到要点)
<input type="text" id="${_arg.id}" name="${_arg.name}" value="${_arg.value}">

理想情况下,我宁愿拥有它,因此不必在 View 中声明该字段,因此它看起来像这样。
#{form @UserCreate.create()}
    #{text 'user.email' /}
#{/form}

带有看起来像这样的标签。
#{field 'user.email'}
    <input type="text" id="${field.id}" name="${field.name}" value="${field.value}">
#{/field}

但是field.value始终返回null,因为用户不在标签的模板绑定(bind)中。我现在还不确定如何处理问题。有什么建议吗?

最佳答案

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

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

关于playframework - 如何在Play的用户定义标签中使用字段标签!框架?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7503198/

10-09 00:15
查看更多