모델 정의, 필드 및 구성 요소 유형 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
필드 오브젝트에는 다음 유형 정의가 있습니다.
componentComponentTypelabelFieldLabeldescriptionFieldDescriptionvalueFieldValuevalue(으)로 정의된 모든 항목을 유지합니다. 이렇게 하면 표시되는 항목이 백엔드에 지속되는 항목과 일치합니다.valueTypeValueTypestring, string[], number, date, boolean이 될 수 있습니다.requiredbooleanreadOnlybooleanhiddenbooleanmultiboolean속성 패널의 다중 필드에 컨테이너 중첩이 허용되지 않습니다.
validationValidationTyperawunknown이름 필드 및 중첩 nesting
name 필드는 현재 리소스의 속성을 직접 가리킬 수 있으며, cq:Pages의 구성 요소인 경우 중첩된 속성에 대한 경로를 사용할 수도 있습니다. 예:
"name": "teaser/image/fileReference"
구성 요소 유형 component-types
다음은 필드 렌더링에 사용할 수 있는 구성 요소 유형입니다.
AEM 태그 aem-tag
AEM 태그 구성 요소 유형은 AEM 태그 선택기를 활성화하여 구성 요소에 태그를 첨부하는 데 사용할 수 있습니다.
| code language-json |
|---|
|
AEM 콘텐츠 aem-content
AEM 콘텐츠 구성 요소 유형은 AEM 콘텐츠 선택기를 활성화하여 모든 AEM 리소스를 선택하는 데 사용할 수 있습니다. 자산만 선택할 수 있는 참조 구성 요소와 달리 AEM 콘텐츠 구성 요소는 모든 AEM 콘텐츠를 참조할 수 있습니다. 추가 유효성 검사 유형을 제공합니다.
rootPathstring| code language-json |
|---|
|
채워진 필드 위에 마우스를 가져다 대면 세부 사항이 표시됩니다.
부울 boolean
부울 구성 요소 유형은 토글로 렌더링되는 간단한 true/false 값을 저장합니다. 추가 유효성 검사 유형을 제공합니다.
customErrorMsgstring| code language-json |
|---|
|
| code language-json |
|---|
|
체크박스 그룹 checkbox-group
부울과 마찬가지로 체크박스 그룹 구성 요소 유형을 사용하면 여러 체크박스로 렌더링되는 여러 true/false 항목을 선택할 수 있습니다.
| code language-json |
|---|
|
컨테이너 container
컨테이너 구성 요소 유형을 사용하면 다중 필드 지원을 포함하여 구성 요소를 그룹화할 수 있습니다. 추가 구성을 제공합니다. 속성 패널의 다중 필드에 컨테이너 중첩이 허용되지 않습니다.
collapsibleboolean| code language-json |
|---|
|
| code language-json |
|---|
|
콘텐츠 조각 content-fragment
콘텐츠 조각 선택기는 콘텐츠 조각 및 해당 변형(필요한 경우)을 선택하는 데 사용할 수 있습니다. 추가 구성을 제공합니다.
variationNamestring추가 유효성 검사 유형도 제공합니다.
rootPathstring| code language-json |
|---|
|
채워진 필드 위에 마우스를 가져다 대면 세부 사항이 표시됩니다.
Date Time 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
숫자 구성 요소 유형을 사용하면 숫자를 입력할 수 있습니다. 추가 구성을 제공합니다.
valueFormatstringlong(기본값) 또는 double일 수 있습니다.또한 추가적인 유효성 검사 유형을 제공합니다.
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 |
|---|
|