我知道我需要foundation/components/parbase
作为sling:resourceSuperType
,因为 Parbase允许组件继承其他组件的属性。
作为示例,我从foundation/components/image
组件中删除了parbase作为resourceSuperType,并且对话框无法正确加载,如屏幕截图所示,裁剪,旋转,清除功能不再有效。
我已经确认正在为xtype'html5SmartImage
'正确加载Ext Js库,那么foundation/components/parbase
为此功能提供了多少额外的东西?
答案 0 :(得分:4)
Parbase允许组件继承其他组件的属性。
我认为上述说法有点不对劲。它不允许您从其他组件继承属性。相反,任何定义foundation/components/parbase
作为其父级的组件都将继承parbase的脚本。
如果查看AEM中的parbase组件,当URL包含img
选择器时,您会发现一个呈现图像的servlet。此外,您还可以找到适合选择器scaffolding
的脚本。
因此,无论何时定义parbase
或从parbase继承的任何其他组件作为组件的超类型,您都可以使用图像呈现功能,而无需为其创建单独的逻辑。
来到您的图像组件示例,html5smartimage
使用请求后缀(.img.png
)向资源发出请求,这是您的图像呈现servlet启动并绘制图像的时间。由于您已从超类型中删除了parbase,因此您将收到404请求,从而显示空面板。但是,显示为禁用的按钮完全是一个不同的问题。它是AEM中的一个错误/功能,当找不到请求的图像时,面板的进一步处理将停止,从而使它们被禁用。