模型定义、字段和组件类型 field-types
通过示例了解通用编辑器可以在属性面板中编辑的字段和组件类型。了解如何通过创建模型定义并将其与组件关联来适配您自己的应用程序。
概述 overview
如果您想使用通用编辑器编辑您自己的应用程序,您就必须适配组件,定义在编辑器的属性面板中可以操作哪些字段和组件类型。为此,您需要创建一个模型并将组件与该模型关联。
本文档概述了模型定义、可用的字段和组件类型以及几个配置示例。
模型定义结构 model-structure
要在通用编辑器的属性面板中配置组件,必须存在一个模型定义,并将其与该组件关联。
模型定义是一个 JSON 结构,以一个模型数组开头。
[
{
"id": "model-id", // must be unique
"fields": [] // array of fields which shall be rendered in the properties panel
}
]
有关如何定义 fields 数组的更多信息,请参阅本文档的 字段 部分。
您可以通过两种方式将模型与组件关联:使用组件定义或通过适配。
使用组件定义进行关联 component-definition
这是将模型与组件关联的首选方法。这样您就可以在组件定义中集中保持关联,并允许跨容器拖动组件。
只需将 model 属性包含在 component-definition.json 文件的 components 数组的组件对象中。
有关更多详细信息,请参阅文档组件定义。
通过适配进行关联 instrumentation
要将模型定义与组件关联,可以使用 data-aue-model 属性。
<div data-aue-resource="urn:datasource:/content/path" data-aue-type="component" data-aue-model="model-id">Click me</div>
- 如果项目已经通过适配实施了与模型的关联,就将继续按原样工作,无需任何更改。
- 如果您在组件定义和适配中都定义了模型,就总是会使用适配。
加载模型定义 loading-model
模型创建后,就可以将其作为外部文件引用。
<script type="application/vnd.adobe.aue.model+json" src="<url-of-model-definition>"></script>
或者您也可以用内联方式定义模型。
<script type="application/vnd.adobe.aue.model+json">
{ ... model definition ... }
</script>
字段 fields
字段对象具有以下类型定义。
componentComponentTypelabelFieldLabeldescriptionFieldDescriptionvalueFieldValuevalue的任何内容。 这可确保您看到的内容与后端中保留的内容相匹配。valueTypeValueTypestring、string[]、number、date、booleanrequiredbooleanreadOnlybooleanhiddenbooleanmultiboolean请注意,属性面板中的多字段不允许容器嵌套
validationValidationTyperawunknown名称字段和嵌套 nesting
name 字段可以直接指向当前资源的属性,对于 cq:Pages 中的组件,它也可以使用指向嵌套属性的路径。例如:
"name": "teaser/image/fileReference"
组件类型 component-types
以下是可用于渲染字段的组件类型。
aem-tagaem-contentbooleancheckbox-groupcontaineraem-content-fragmentdate-timeaem-experience-fragmentmultiselectnumberradio-groupreferencerichtextselecttabtexttextareaAEM 标记 aem-tag
AEM 标记组件类型会启用 AEM 标记选取器,用于在组件上附加标记。
| code language-json |
|---|
|
AEM 内容 aem-content
AEM 内容组件类型会启用 AEM 内容选取器,用于选择任何 AEM 资源。与只能选择资产的引用组件不同,AEM 内容组件可以引用任何 AEM 内容。它提供了一种额外的验证类型。
rootPathstring| code language-json |
|---|
|
布尔值 boolean
布尔值组件类型存储一个简单的真/假值,显示为一种切换开关。它提供了一种额外的验证类型。
customErrorMsgstring| code language-json |
|---|
|
| code language-json |
|---|
|
复选框组 checkbox-group
与布尔值类似,复选框组组件类型允许选择多个真/假项,显示为多个复选框。
| code language-json |
|---|
|
容器 container
容器组件类型允许将组件分组,包括多字段支持。它提供了一种额外的配置。请注意,属性面板中的多字段不允许容器嵌套
collapsibleboolean| code language-json |
|---|
|
| code language-json |
|---|
|
内容片段 content-fragment
内容片段选取器可用于选择内容片段及其变体(必需时)。它提供了一种额外的配置。
variationNamestring它也提供了一种额外的验证类型。
rootPathstring| code language-json |
|---|
|
日期时间 date-time
日期时间组件类型允许指定一个日期、时间或两者的组合。它提供了额外配置。
displayFormatstringvalueFormatstring它也提供了一种额外的验证类型。
customErrorMsgstringvalueFormat 的情况下显示的消息| code language-json |
|---|
|
| code language-json |
|---|
|
体验片段 experience-fragment
体验片段选取器可用于选择体验片段及其变体(必需时)。它提供了一种额外的配置。
variationNamestring它也提供了一种额外的验证类型。
rootPathstring| code language-json |
|---|
|
多选 multiselect
多选组件类型显示为下拉菜单中多个可选择项,包括对可选元素分组的功能。
| code language-json |
|---|
|
| code language-json |
|---|
|
数字 number
数字组件类型允许输入数字。它提供了额外的验证类型。
numberMinnumbernumberMaxnumbercustomErrorMsgstringnumberMin 或 numberMax 的情况下显示的消息| code language-json |
|---|
|
| code language-json |
|---|
|
单选按钮组 radio-group
单选按钮组组件类型允许从多个选项中进行互斥选择,显示为与复选框组类似的一个组。
| code language-json |
|---|
|
引用 reference
引用组件类型会启用 AEM 资产选取器,用于选择要引用的任何 AEM 资产。与可以选择任何 AEM 资源的AEM 内容组件不同,引用组件只能引用资产。它提供了一种额外的验证类型。
引用组件类型允许从当前对象引用另一个数据对象。
| code language-json |
|---|
|
富文本 rich-text
富文本允许多行的富文本输入。
| code language-json |
|---|
|
选择 select
选择组件类型允许从下拉菜单中的一个预定义选项列表中选择一个选项。
| code language-json |
|---|
|
选项卡 tab
选项卡组件类型允许您将其他输入字段一起分组放在多个选项卡上,以增强作者的布局组织。
tab 定义可以被认为是 fields 数组中的一种分隔符。tab 之后发生的一切都将被放在这个选项卡上,直到出现新的 tab 后,接下来的各项将被放在这个新选项卡上。
如果您想让一些项显示在所有选项卡上方,就必须在出现任何选项卡之前定义它们。
| code language-json |
|---|
|
文本 text
文本允许输入单行文字。它包括额外的验证类型。
minLengthnumbermaxLengthnumberregExpstringcustomErrorMsgstringminLength、maxLength 和/或 regExp 的情况下显示的消息| code language-json |
|---|
|
| code language-json |
|---|
|
文本区域 textarea
文本区域允许输入多行文本。
| code language-json |
|---|
|