Expand my Community achievements bar.

Learn about Edge Delivery Services in upcoming GEM session
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.