将sling:resourceSuperType设置为旋转木马并移除AEM 6.1中不起作用的属性

将sling:resourceSuperType设置为旋转木马并移除AEM 6.1中不起作用的属性,aem,Aem,我有一个测试网页,其中包含一个组件,一个旋转木马。 该组件是从/libs/foundation/components/carousel复制的,我从复制的组件中修改了以下属性: sling:resourceSuperType从foundation/components/list到foundation/components/carousel 我的下一步是从触摸对话框中删除属性(属性控件样式)。 我的问题是,在我的网页上,我一直看到这个属性,即使它被删除 这是因为resourceSuperType是f

我有一个测试网页,其中包含一个组件,一个旋转木马。 该组件是从
/libs/foundation/components/carousel
复制的,我从复制的组件中修改了以下属性: sling:resourceSuperType从
foundation/components/list
foundation/components/carousel

我的下一步是从触摸对话框中删除属性(属性<代码>控件样式)。 我的问题是,在我的网页上,我一直看到这个属性,即使它被删除

这是因为
resourceSuperType
foundation/components/carousel
,并且该组件仍然具有我在对话框中看到的属性吗

在AEM 5中,这种行为与此不同

我的意图是复制组件,保留继承(resourceSuperType)并修改复制的组件

我做错了什么


编辑:做一些测试,我发现在AEM 6.0中,如果我删除了旋转木马的一个属性(复制的旋转木马),该属性就不会出现。但在AEM 6.1中,出现了该属性。在哪里可以找到这两个版本之间的更改?或者是其他内容?

创建覆盖时,您将找到原始组件中的所有属性,即使它们不存在于覆盖中

您必须通过将类型为
String[]
sling:hideProperties
属性添加到覆盖中来显式删除该属性。这将允许您隐藏从要覆盖的
/libs
节点继承的值


我想您会发现
sling:hideProperties
属性的各种用例的描述非常有用。

作为其资源解析过程的一部分,sling资源解析程序具有查找资源的搜索路径

最常见的两种搜索路径是
/apps
/libs
。优先使用/apps路径。最常见的用法是在
sling:resourceType
中,该值定义为其中一个搜索路径下的路径。如果您使用sling:resourceType of
foundation/components/carousel
最初将返回/libs下的OOTB组件,当您将其复制到/apps目录时,它将返回您放置在/apps下的组件

用您自己的组件替换现有组件的概念称为覆盖,另一种方法称为扩展组件,在该组件中定义
sling:resourceSuperType
,如果在现有路径中找不到资源,将请求传递给超类型,以查看是否可以在那里找到资源

在6.0之前,覆盖的概念仅适用于资源。这是一个包含属性的节点(简单地说),在最常见的用法中,您必须将大部分组件反映到新的搜索路径中,以获得您正在尝试执行的操作

从6.0开始,出现了合并资源的新概念。这将组合位于多个搜索路径中的资源的值。这允许您修改或更改组件的功能,而无需复制其他所有内容。您可以只更改特定级别的属性

这些都不是自动发生的。要获得此功能,组件需要知道ResourceMergerApi,并在尝试解析要使用的资源时使用该API


这就是文件中提到花岗岩的原因。Granite指的是Adobe正在编写的新组件,它使用TouchUI并知道这个新API。随着每个新版本的发布,越来越多的旧组件被支持资源合并的基于TouchUI的新组件所取代。包括旋转木马

这是AEM 6.1中的新功能吗?因为一位同事告诉我,在AEM的早期版本中,这个并不是那样工作的。@Phoenix_uy说实话,我还没有用过它。前段时间我的一个同事告诉我这房子的事。当我看到你的问题时,我回忆起曾经谈论过这个问题,并在文档中快速搜索了一下。乍一看,我在5.6.1文档中找不到这个属性,所以它可能是新的。。它是什么?我已将此属性添加到复制的旋转木马组件的根目录中,但没有删除luck@Phoenix_uy尝试将其添加到具有要删除的属性的节点。如果我正确理解你的问题,那就是对话中的那个。