parbase作为cq:component的resourceSuperType有什么意义

时间:2016-03-08 16:38:27

标签: extjs cq5 aem

我知道我需要foundation/components/parbase作为sling:resourceSuperType,因为 Parbase允许组件继承其他组件的属性

作为示例,我从foundation/components/image组件中删除了parbase作为resourceSuperType,并且对话框无法正确加载,如屏幕截图所示,裁剪,旋转,清除功能不再有效。 enter image description here

我已经确认正在为xtype'html5SmartImage'正确加载Ext Js库,那么foundation/components/parbase为此功能提供了多少额外的东西?

1 个答案:

答案 0 :(得分:4)

  

Parbase允许组件继承其他组件的属性。

我认为上述说法有点不对劲。它不允许您从其他组件继承属性。相反,任何定义foundation/components/parbase作为其父级的组件都将继承parbase的脚本。

如果查看AEM中的parbase组件,当URL包含img选择器时,您会发现一个呈现图像的servlet。此外,您还可以找到适合选择器scaffolding的脚本。

因此,无论何时定义parbase或从parbase继承的任何其他组件作为组件的超类型,您都可以使用图像呈现功能,而无需为其创建单独的逻辑。

来到您的图像组件示例,html5smartimage使用请求后缀(.img.png)向资源发出请求,这是您的图像呈现servlet启动并绘制图像的时间。由于您已从超类型中删除了parbase,因此您将收到404请求,从而显示空面板。但是,显示为禁用的按钮完全是一个不同的问题。它是AEM中的一个错误/功能,当找不到请求的图像时,面板的进一步处理将停止,从而使它们被禁用。