Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

Sightly in <script> tag not evaluating?

Avatar

Employee

I am trying to write a basic Sightly user-grid component by referencing a JSP user-grid component. What I seem to be having trouble with is the expressive language seems to be written out without being evaluated in the <script> tag.

For instance in JSP:

<script type="text/javascript"> var baseURL = "<%= currentNode.getPath() %>"; $CQ(function () { $CQ('.user-table').flexigrid({ url: baseURL + '.json', // This will trigger a POST request back to CQ //more params }); }); </script>

And I should be able to rewrite this in Sightly as:

<script type="text/javascript"> var baseURL = "${currentNode.path}"; $CQ(function () { $CQ('.user-table').flexigrid({ url: baseURL + '.json', // This will trigger a POST request back to CQ //more params }); }); </script>

But for some reason the HTML is rendered as:

var baseURL = "";

I have only seen this behavior in the <script> tag, every other tag is would be rendered as the path to the currentNode. Any thoughts or suggestions are welcome!

1 Accepted Solution

Avatar

Correct answer by
Level 8

You need to set the context in the string.  You can find the documentation around that here: http://docs.adobe.com/docs/en/aem/6-0/develop/sightly.html#Display%20Context

I believe for your needs you'll want to use:

var baseURL = "${currentNode.path @ context='scriptString'}";

View solution in original post

3 Replies

Avatar

Correct answer by
Level 8

You need to set the context in the string.  You can find the documentation around that here: http://docs.adobe.com/docs/en/aem/6-0/develop/sightly.html#Display%20Context

I believe for your needs you'll want to use:

var baseURL = "${currentNode.path @ context='scriptString'}";

Avatar

Employee

Thanks! I haven't really used the @context param yet, so it's good to see it actually used.