How to access multifield values of a design dialog in sightly

ybharath264

24-09-2018

I have multifield (granite/ui/components/coral/foundation/form/multifield) in a design dialog.  And the values are being saved in the design template (/etc/designs/<myapp>/jcr:content/<mytemplate>/<mymultifield>/item[n]).

How can I access these values in my sightly template.

I was trying something like this ${currentStyle.<mymultifield>.listChildren}, but its not working

Please help.  Thanks in advance.

I am on version 6.3

Accepted Solutions (1)

Accepted Solutions (1)

Veena_Vikram

MVP

25-09-2018

Hi ybharath264

  In your model , you can inject currentStyle as below. Once you get this

1579190_pastedImage_0.png

After injecting the same , you can use it as below (just a sample) . You can use the Style ("The Adobe AEM Quickstart and Web Application.") methods

@PostConstruct
protected void init() {

   try {

   pageList = new ArrayList<SimplePage>();
  long absParent = currentStyle.get("absParent", 2L);

........

......

........

}

catch (Exception e) {

   LOG.error("Exception:", e);
   }

}

Hope this helps. Happy coding

Thanks

Veena

Answers (2)

Answers (2)

akashs51893872

25-05-2019

You can access directly from HTL

SCREENSHOT (with the name of the design multifield property I am trying to access) :

1759558_pastedImage_0.png

CODE:

<div class="container">

  <sly

          data-sly-test="${currentStyle}"

       data-sly-use.xtcontainerstyleResource="${currentStyle.path}">

    <div data-sly-test="${xtcontainerstyleResource}" class="${currentStyle.containerCSSClasses}">

      <sly data-sly-test="${xtcontainerstyleResource.hasChildren}"

           data-sly-list="${xtcontainerstyleResource.listChildren}">

        <sly data-sly-test="${item.name == 'divElements'}"

             data-sly-list="${item.listChildren}">

          <div class="${item.cssClass}">

            <sly data-sly-resource="${ item.name @ resourceType='wcm/foundation/components/responsivegrid' }"></sly>

          </div>

        </sly>

      </sly>

    </div>

  </sly>

  <sly data-sly-test="${!currentStyle}">

    <sly data-sly-resource="${ item.name @ resourceType='wcm/foundation/components/responsivegrid' }"></sly>

</div>

Arun_Patidar

MVP

25-09-2018

Hi,

To access multifield values, you have to go with java or JS Use API, similar to dialog multifield value and return as list and then use in HTL.