模型定義、欄位和元件類型 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
這是將模型連結至元件的首選方法。這樣做可以讓您在元件定義中集中維護連結,並能夠在各個容器之間拖曳元件。
只需在 component-definition.json 檔案之 components 陣列的元件物件中包含 model 屬性即可。
如需詳細資訊,請參閱元件定義文件。
使用檢測進行連結 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
欄位物件具有以下類型定義。
componentComponentTypelabelFieldLabeldescriptionFieldDescriptionvalueFieldValuevalueTypeValueTypestring、string[]、number、date、booleanrequiredbooleanreadOnlybooleanhiddenbooleanmultiboolean請注意,屬性面板中的多欄位不允許容器巢狀
validationValidationTyperawunknown名稱欄位和巢狀 nesting
name 欄位可以直接指向目前資源的屬性,或者若是在 cq:Pages 的元件,也可以使用巢狀屬性的路徑。例如:
"name": "teaser/image/fileReference"
元件類型 component-types
以下是可用於轉譯欄位的元件類型。
aem-tagaem-contentbooleancheckbox-groupcontaineraem-content-fragmentdate-timeaem-experience-fragmentmultiselectnumberradio-groupreferencerichtextselecttabtextAEM 標記 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 |
|---|
|
RTF 文字 rich-text
RTF 文字允許多行、RTF 文字的輸入內容。
| 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 |
|---|
|