CQ5 - Динамически заполненные параметры в выборе xtype

Я уже несколько часов бьюсь головой об этом. Я пытаюсь динамически заполнить параметры в xtype выбора и не могу заставить его работать. Вот мой dialog.xml

<resourceType
            jcr:primaryType="cq:Panel"
            title="Header Type">
            <items jcr:primaryType="cq:WidgetCollection">
                <headerType
                        jcr:primaryType="cq:Widget"
                        fieldLabel="Header Type"
                        name="./headerType"
                        type="select"
                        xtype="selection">
                    <options jcr:primaryType="cq:WidgetCollection">
                        <categories
                            jcr:primaryType="cq:Widget"
                            path="/content/admin/adminView/jcr:content/header-admin-content/cats/type.infinity.json"
                            width="500"
                            xtype="cqinclude" />
                    </options>
                </headerType>
            </items>
        </resourceType>

JSON, который я создаю для:

content/admin/adminView/jcr:content/header-admin-content/cats/type.infinity.json

Выглядит примерно так:

{"jcr:primaryType":"nt:unstructured","item_1":  
{"jcr:primaryType":"nt:unstructured","text":"small","parameter":"small"},"item_2":
{"jcr:primaryType":"nt:unstructured","text":"medium","parameter":"medium"},"item_3":
{"jcr:primaryType":"nt:unstructured","text":"large","parameter":"large"},"item_4":
{"jcr:primaryType":"nt:unstructured","text":"none","parameter":"none"}} 

Когда я иду, чтобы открыть диалоговое окно, ничего не происходит, я просто получаю ошибку JS TypeError: snippet.xtype не определен

Любая помощь приветствуется!

1 ответ

Решение

Варианты для selection xtype может быть установлен динамически двумя способами

  1. установка свойства options в путь, который возвращает массив параметров JSON
  2. Написание функции, которая устанавливает параметры (используя метод setOptions), и передачу этой функции в качестве значения для свойства optionsProvider.

В обоих случаях данные, возвращаемые в JSON, должны быть массивом.

Чтобы использовать метод 1, на наборе узла headerType options свойство к пути, который предоставит данные JSON. Задавать optionsRoot свойство имени свойства, которое содержит массив JSON. Задавать optionsTextField к имени свойства в данных JSON, которое должно быть текстом. Задавать optionsValueField к имени свойства в данных JSOn, которое должно быть значением.

Подробное руководство по этому вопросу можно найти здесь: http://jenikya.com/blog/2013/04/dynamic-dialog-data-in-cq5.html

Для метода 2 обратитесь к этому

Другие вопросы по тегам