Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between data-sly-use, data-sly-resource, data-sly-include, and data-sly-template?

Tags:

aem

sightly

What is the difference between: data-sly-use, data-sly-resource, data-sly-include, and data-sly-template? I am reading the doc on Sightly AEM and I am super confused.

As far as I can see:

  • data-sly-use is used to add js/java files to render with the doc
  • data-sly-resource is used to inject components
  • data-sly-include is used to include other html files (?***?)

And, data-sly-template is confusing, as in:

<div data-sly-use.nav="navigation.js">${nav.foo}</div>
<section data-sly-include="path/to/template.html"></section>
<template data-sly-template.one>blah</template>
<div data-sly-call="${one}"></div>
like image 448
Hello Universe Avatar asked Oct 28 '15 04:10

Hello Universe


People also ask

What is data sly template?

data-sly-template: Defines a template. The host element and its content are not output by HTL. data-sly-call: Calls a template defined with data-sly-template. The content of the called template (optionally parameterized) replaces the content of the host element of the call.

What is data sly attribute?

Helps to add attributes to the host element. For eg: <div title="Page Title" data-sly-attribute.title="${properties.jcr:title}"></div> Prints the current page title, still helpful for searching in html source using term 'Page Title'

Why we use data sly test?

data-sly-test - This statement is used to conditionally render a tag and all of it's children. Optionally, it can be used to set a variable as discussed above. data-sly-element - This statement is used to conditionally replace the element type on a tag.


2 Answers

As you already said:

  • data-sly-use "is used to add js/java". You declare component-beans with this statement for instance.
  • data-sly-resource you can override a resource-type for a included file.
  • data-sly-include includes other html files as the name suggests.
  • data-sly-template you declare templates which can later be 'called' with data-sly-call.

Please refere to the official specs for more informations. there are several examples for each tag:

https://github.com/Adobe-Marketing-Cloud/sightly-spec/blob/master/SPECIFICATION.md

like image 74
chrysler Avatar answered Oct 11 '22 12:10

chrysler


  • data-sly-use - is same what @chrysler quoted.
  • data-sly-include vs data-sly-resource - data-sly-resource creates a new internal request against the sling engine, where as data-sly-include looks for the specified script/servlet and executes it, using the same request context, i.e. the same current resource.

From Docs - https://helpx.adobe.com/experience-manager/htl/using/block-statements.html - data-sly-include: Replaces the content of the host element with the markup generated by the indicated HTML template file (HTL, JSP, ESP etc.) when it is processed by its corresponding template engine. The rendering context of the included file will not include the current HTL context (that of the including file);

The answer is relevant for v6.3.

like image 44
user2756335 Avatar answered Oct 11 '22 13:10

user2756335