Expand my Community achievements bar.

July 31st AEM Gems Webinar: Elevate your AEM development to master the integration of private GitHub repositories within AEM Cloud Manager.
SOLVED

how can I access a javascript variable in my HTL attribute

Avatar

Level 5
<sly data-sly-test=${isTrue}>
                <input type="radio" id="north-america" name="regions" value="north-america" class="destaco-input-radio">
                <label for="north-america">${"America" @ i18n, context='html'}</label>
</sly>
<script>
    var isTrue= true;
</script>
 
 
 
I am confused about how to use the "isTrue" variable inside my data-sly-test statement so that I can execute this piece of code
Thank you
 
 
I have to use this variable for both "true" and "false" statements
Please help me find out how to do it .
Thank you
1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi,

You cannot use client side javascript variables value for server side execution.

You can always execute the code and based on javascript condition show/hide or do business logic on client side.



Arun Patidar

View solution in original post

3 Replies

Avatar

Correct answer by
Community Advisor

Hi,

You cannot use client side javascript variables value for server side execution.

You can always execute the code and based on javascript condition show/hide or do business logic on client side.



Arun Patidar

Avatar

Employee Advisor

As mentioned by Arun, you can not use clientSide variables to render server side scripts.

 

In this case, you render your HTML and use javascript to show/hide block based on js Variable value.

<div class="showInput">
    <input type="radio" id="north-america" name="regions" value="north-america" class="destaco-input-radio">
    <label for="north-america">${"America" @ i18n, context='html'}</label>
</div>

# Hide showInput div block on page load
<style type="text/css">
    .showInput {
        display: none;
    }
</style>

<script>
    if(isTrue) {
        // Display showInput div block if JS object is true
    }
</script>