有几种方法可以做到这一点。
如果要更改特定架构字段类型的所有字段的输出,可以覆盖 中的适当模板lib/modules/apostrophe-schemas/views
,例如string.html
.
该模板的标准版本导入macros.html
和调用schemas.string
,等等,但您不必这样做。
你要做的是:
确保您的字段的全部内容包含在具有data-name
属性的外部元素中,该属性设置为模式字段名称。包括应与输入字段一起显示和隐藏的任何标签或其他内容。
确保字段本身具有name
也设置为模式字段名称的属性。这适用于大多数字段类型,请参阅 macros.html 了解标签和连接编辑器等特殊情况。
一般来说:标记是您可以更改data-
的,但属性和name
属性必须保持不变。
“如果我想要 Apostrophe 表单中的常规格式,以及我的表单中的特殊格式怎么办?” 一种方法是style
在架构中的字段上设置一个属性,如下所示:
{
name: 'flavor',
type: 'string',
style: 'custom'
}
然后你string.html
可以看起来像这样:
{%- import "macros.html" as schemas -%}
{% if (data.style == 'custom') %}
{# Custom way #}
<div data-name="{{ data.name }}">
<h4>{{ data.label }}</h4>
<input name="{{ data.name }}" />
</div>
{% else %}
{# Normal way #}
{{ schemas.string(data) }}
{% endif %}
请注意,这使得该custom
样式可用于您网站上在添加字段时选择使用它的任何表单。另请注意,addFields
如果您想更改标准字段的定义,例如title
使用自定义样式,您可以使用它来重述标准字段的定义。
“我在哪里输出字段的当前值?” 你没有。架构模块 javascript 将即时设置并读取它,这是您必须遵循data-name
和name
属性约定的原因之一。