如何在 Play 中覆盖 CRUD 标签!框架 1.2.4
Posted
技术标签:
【中文标题】如何在 Play 中覆盖 CRUD 标签!框架 1.2.4【英文标题】:How do I override CRUD tags in Play! Framework 1.2.4 【发布时间】:2012-08-13 14:33:01 【问题描述】:我有一个具有多对多关系的模型并已对其应用了 CRUD 模块,因此我在管理屏幕上得到了一个漂亮的多选框,但它只有 4 行高。我想指定至少 20 行,但因为 CRUD 都是通过反映对象自动生成的(我猜...),所以即使覆盖模板也不允许这样做。
我需要覆盖的代码在views.tags.crud/relationField.html
- 我只想添加一个像这样的“大小”值:-
<select id="$field.id" name="$pName" multiple="yes" size="20">
但它似乎不可覆盖。
有人有什么技巧可以解决这个问题吗?
【问题讨论】:
【参考方案1】:您可以先覆盖控制器的show
和blank
模板。
然后,在模板中显式声明表单字段,如下所示:
#crud.form fields: ['field1','field2','field3'] /
将您的特殊情况字段排除在列表之外。然后,在表单标记之后,以您喜欢的任何方式为您的字段添加必要的 HTML。 (您可以查看relationField.html
中的字段是如何构造的,并且只进行必要的更改。)
这有点老套,但仍然是实现您所追求的目标的好方法。希望这会有所帮助!
http://www.playframework.org/documentation/1.2.4/guide7#aCustomizingthePostforma
【讨论】:
【参考方案2】:您可以在加载时使用 JQuery 脚本来更改表单...
【讨论】:
我想如果没有原生(即 Play Framework)的方式来做到这一点,我可能不得不以上是关于如何在 Play 中覆盖 CRUD 标签!框架 1.2.4的主要内容,如果未能解决你的问题,请参考以下文章
Play Framework:如何在 CRUD 模型中声明不应在 UI 中显示的成员
Play 2.0 与 Play 1.2.5-RC1 + CRUD + 其他模块 [关闭]