2016-03-08 26 views
1

我知道我需要foundation/components/parbase作爲sling:resourceSuperType,因爲Parbase允許組件繼承其他組件的屬性parbase作爲cq:組件的資源有什麼意義SuperType

作爲示例,我從foundation/components/image組件中刪除了parbase作爲resourceSuperType,並且該對話框無法正確加載,如屏幕截圖,裁剪,旋轉,清除功能不再有效。 enter image description here

我已經證實,Ext JS的庫被正確加載的xtype「html5SmartImage」,那麼多餘的東西不foundation/components/parbase提供此功能?

回答

4

Parbase允許組件繼承其他組件的屬性。

上述說法在我看來有點不對。它不允許你繼承其他組件的屬性。相反,任何定義foundation/components/parbase的組件都將繼承parbase的腳本。

如果您查看AEM中的parbase組件,當URL包含img選擇器時,您會發現一個呈現圖像的servlet。此外,您還可以找到一個迎合選擇器scaffolding的腳本。因此,無論您何時將parbase或任何其他繼承自parbase的組件都定義爲組件的超類型,您都可以使用圖像呈現功能,而無需爲同一個組件編寫單獨的邏輯組件。

回到您的圖像組件示例,html5smartimage使用請求後綴(.img.png)向您的資源發出請求,這是您的圖像呈現servlet啓動並繪製圖像的時間。由於您已經從超級類型中刪除了parbase,因此您會收到404請求,從而顯示空白麪板。但是,顯示爲禁用的按鈕完全是另一個問題。這是AEM中的一個缺陷/功能,當找不到請求的圖像時,面板的進一步處理將停止,從而使其無法使用。