Как ввести дополнительные поля со значениями по умолчанию в диалоговых окнах AEM Touch UI? - PullRequest
2 голосов
/ 20 февраля 2020

Ситуация:

У нас есть диалоговое окно AEM 6.4 Touch UI и несколько существующих экземпляров компонентов, которые были созданы с помощью этого диалога.

Теперь мы хотим добавить дополнительное логическое свойство (флажок) для диалогового окна.

Значение по умолчанию нового свойства должно быть истинным / проверено.

Ожидаемый результат:

Когда редактор открывает обновленное диалоговое окно для существующего компонента, я ожидаю, что диалоговое окно показывает новый флажок флажок , поскольку это значение по умолчанию , а JCR не содержит значения для существующих компонентов .

Фактический результат:

В диалоговом окне отображается флажок unchecked для существующего компонента, который не имеет значения для этого свойства в JCR.

Удивительно, но в диалоговом окне отображается флажок проверено для только что созданного компонента!

Есть идеи? Спасибо.

Фрагмент флажка внутри файла .content.xml ниже.

<newProperty
  jcr:primaryType="nt:unstructured"
  sling:resourceType="granite/ui/components/coral/foundation/form/checkbox"
  checked="{Boolean}true"
  name="./newProperty"
  text="The recently added new property"
  uncheckedValue="{Boolean}false"
  value="{Boolean}true"
/>

Ответы [ 3 ]

1 голос
/ 21 февраля 2020

Это, безусловно, потребует проверки JS, поскольку отсутствие значения ложно для диалога.

0 голосов
/ 03 мая 2020

Ваш пример должен всегда работать, не нужно дополнительных js или свойств. Когда вы говорите, что для этого свойства нет существующего значения, вы имеете в виду, что этого свойства нет или оно пустое? Поскольку пустое свойство все равно будет иметь значение, в данном случае пустую строку, в результате чего оно будет считаться ложным, а флажок пустым. Новый компонент не имеет этого свойства, в результате чего отображается значение по умолчанию. Если это не работает, как задумано, не могли бы вы расширить свой пример, добавив все текущие свойства компонента?

0 голосов
/ 24 февраля 2020

@ Джон Гуфи - вам просто нужно добавить ниже свойство

'ignoreData = {Boolean} true'

, тогда ваш узел станет

<newProperty
  jcr:primaryType="nt:unstructured"
  sling:resourceType="granite/ui/components/coral/foundation/form/checkbox"
  checked="{Boolean}true"
  name="./newProperty"
  text="The recently added new property"
  uncheckedValue="{Boolean}false"
  value="{Boolean}true"
  ignoreData="{Boolean}true"
/>

, пожалуйста, дайте я знаю, если это не сработает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...