Sightly condition check | Community
Skip to main content
Level 2
May 31, 2019

Sightly condition check

  • May 31, 2019
  • 1 reply
  • 2934 views

Hello all,

Below is my code.  actually i am displaying list of children (in 2 sections) on click in header navigation.

<ul class="nav navbar-nav" data-sly-list.level1="${header.mainNavPages}" >

<div class="col-md-3 col-sm-4">

<ul class="dropdown-list" data-sly-list.level2="${level1.children}">

<li data-sly-test="${level2List.index <= level1.mainNavForkIndexValue}"></li>

-----------

</ul></div>

<div class="col-md-3 col-sm-4">

<li data-sly-test="${level2List.index > level1.mainNavForkIndexValue}"></li>

----

</ul></div>

Now my requirement , i want to display same results in 3 sections, i want to segregate the list of children in 3 sections (3 divs).

Earlier  2 sections (50% in first sections and another 50% in 2nd section)

"${level2List.index <= level1.mainNavForkIndexValue}",   ${level2List.index > level1.mainNavForkIndexValue}">

Now 3 sections (30,30,40 or  33,33,34%)

I need suggestion for sightly condition on how to achieve this.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

1 reply

arunpatidar
Community Advisor
Community Advisor
May 31, 2019

Hi,

Use Sling Model to return list(s) based on conditions. You can pass as level1.mainNavForkIndexValue parameter in Java and do all business logic there and return 3 lists.

Arun Patidar
Level 2
June 4, 2019

HI Arun,

Thanks for reply. I am just doing POC for this. I am passing string to sightly. But this is not working for me. Could you please suggest??

<div class="collapse navbar-collapse" id="main-navbar" data-sly-use.mySlingModal="${'com.ingredion.aem.core.components.content.SlingFirst @ text='Some text'}">

@Model(adaptables = [SlingHttpServletRequest, Resource])

final class SlingFirst extends AbstractComponent {

   @RequestAttribute
  @Optional
   private String reversed;;

   @PostConstruct
   public void init() {

  String text = get("text", String.class);

   reversed = new StringBuilder(text).reverse().toString();

  }

   public String getReversed() {

   return reversed;

  }

  }

arunpatidar
Community Advisor
Community Advisor
June 4, 2019