AEM使用HTL sly的不同方式

AEM使用HTL sly的不同方式,aem,sightly,Aem,Sightly,以下两种方法的区别是什么: 或 我认为理解什么时候使用什么的最好方法是 大多数HTL都可以围绕现有的HTML标记和属性编写,例如 但是,在不希望HTML元素出现在输出中的情况下,可以利用sly元素。当使用sly元素时,它将自动从最终呈现的HTML中删除 例如。, 或 两者都输出相同的HTML,直接包含资源foo的输出,而不添加任何额外的标记 但是如果同样的代码是使用如下HTML元素编写的 生成的HTML将包含包含的资源输出周围的父div标记,如下所示 foo的HTML输出在这里 在这种情况下,数

以下两种方法的区别是什么:


我认为理解什么时候使用什么的最好方法是

大多数HTL都可以围绕现有的HTML标记和属性编写,例如

但是,在不希望HTML元素出现在输出中的情况下,可以利用sly元素。当使用sly元素时,它将自动从最终呈现的HTML中删除

例如。, 或 两者都输出相同的HTML,直接包含资源foo的输出,而不添加任何额外的标记

但是如果同样的代码是使用如下HTML元素编写的

生成的HTML将包含包含的资源输出周围的父div标记,如下所示 foo的HTML输出在这里

在这种情况下,数据展开将发挥作用。将数据添加到HTML元素将从生成的输出中排除该元素,但将输出所有子HTML

例如,和将产生相同的输出

请注意,sly元素上的数据sly unwrap无效,因为处理器无论如何都会删除sly

然而,我认为数据展开的威力在于将其与条件语句一起使用。 例如,如果父元素只需要在某些场景中显示,那么以以下方式使用它比编写多个if条件要干净得多,就像我们在jsp或JSTLs中所做的那样

<div class="parent" data-sly-unwrap="${hideParent}">
    <img class="img" src="../../xyz.jpg" />
</div>

更多关于数据展开的信息。

我认为理解何时使用什么的最好方法是

大多数HTL都可以围绕现有的HTML标记和属性编写,例如

但是,在不希望HTML元素出现在输出中的情况下,可以利用sly元素。当使用sly元素时,它将自动从最终呈现的HTML中删除

例如。, 或 两者都输出相同的HTML,直接包含资源foo的输出,而不添加任何额外的标记

但是如果同样的代码是使用如下HTML元素编写的

生成的HTML将包含包含的资源输出周围的父div标记,如下所示 foo的HTML输出在这里

在这种情况下,数据展开将发挥作用。将数据添加到HTML元素将从生成的输出中排除该元素,但将输出所有子HTML

例如,和将产生相同的输出

请注意,sly元素上的数据sly unwrap无效,因为处理器无论如何都会删除sly

然而,我认为数据展开的威力在于将其与条件语句一起使用。 例如,如果父元素只需要在某些场景中显示,那么以以下方式使用它比编写多个if条件要干净得多,就像我们在jsp或JSTLs中所做的那样

<div class="parent" data-sly-unwrap="${hideParent}">
    <img class="img" src="../../xyz.jpg" />
</div>
更多关于数据展开的信息