I have defined teaserDelegate on list component node
-- sling:resourceSuperType="core/wcm/components/list/v2/list"
-- teaserDelegate="core/wcm/components/teaser/v1/teaser"
My page in the list item has teaser image, however when I call item
${item.teaserResource} there is no resource, it is coming as null. How do we configure list component to use teaserDelegate? Is there any step I am missing?
Solved! Go to Solution.
Views
Replies
Total Likes
So if I good understand, you would like to get data from teaser that is located on different page. In that case you will probably need some custom component/solution, teaser delegate will show page metadata as teaser but it will not look for the teaser component on that page.
Hi @mohammedahmed, to use teaserDelegate list feature you need to use v3 of list component and v2 of teaser.
<my-list jcr:primaryType="cq:Component" componentGroup="My Group" cq:isContainer="{Boolean}false" jcr:title="My List Component" sling:resourceSuperType="core/wcm/components/list/v3/list" teaserDelegate="core/wcm/components/teaser/v2/teaser"/>
If your component is configured correctly you will see additional option that will allow to display list items as teaser.
I am not sure which version of Core Compnents you are using but I would suggest to use the latest one. You can observe that v2 of list component is using following ListItem implementation https://github.com/adobe/aem-core-wcm-components/blob/development/bundles/core/src/main/java/com/ado... - which is not providing any implementation of getTeaserResource() method so default value - null is returned.
You can also check ListItem implementation used by v3 list https://github.com/adobe/aem-core-wcm-components/blob/development/bundles/core/src/main/java/com/ado... - as you can see this version contains getTeaserResource() method fully implemented.
Thank you @lukasz-m
I do see the option now. I am more interested in the image path on the teaser item. I am getting the resource now with the path --/content/mysite/mypage1/jcr:content however my teaser is at -- /content/mysite/mypage1/jcr:content/root/container/container/teaser
Is there any OOTB api we can use to get this path or we have to write some additional class to get the resource and appropriate field.
So if I good understand, you would like to get data from teaser that is located on different page. In that case you will probably need some custom component/solution, teaser delegate will show page metadata as teaser but it will not look for the teaser component on that page.
I am not sure what page core component version you are using but if you supply a featured image in the properties, that will auto populate in your list when you select "display as a teaser". Otherwise you would need to write custom code to grab the image in another teaser on the page.
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies