I have a generic <item>
directive, and a <listing>
directive with filters and pagination tools for listing that <item>
:
Example: https://plnkr.co/edit/r6byzhFX5m674ONhH1JS?p=preview
The <listing>
template is something like this:
<div ng-repeat="item in items">
<item date="item">
<ng-transclude ng-transclude-slot="itemContent"></ng-transclude>
</item>
</div>
The <item>
directive uses the new Angular 1.5 multi-slot transclusion to customize footer and header easily:
<item data="itemData">
<header>My header</header>
<footer>My custom footer</footer>
</item>
My problem arises when I try to customize that items when using <listing>
. If I use something like this:
<listing items="myItems">
<item-content>
<header>{{ item.name }}</header>
<footer>My custom footer for {{ item.name }}</footer>
</item-content>
</listing>
It doesn't work, because the <item-content>
gets inserted into <item>
, but <header>
and <footer>
don't get transcluded into their proper places, and they cannot read the item
scope variable. Is there any way to achieve this?