我有一个用于在子元素周围添加容器的组件。该组件在其他组件中使用,没有任何问题。但我希望能够像这样使用一个方面:
<!-- INTERFACE -->
<cc:interface>
<cc:attribute name="detailTitle" />
<cc:facet name="header"/>
</cc:interface>
<!-- IMPLEMENTATION -->
<cc:implementation>
<li class="mvkcomp listItem listDetailToggle">
<ezcomp:container>
<div class="listItemBody">
<div class="header">
<!-- Facet not being rendered -->
<cc:renderFacet name="header" />
<a href="#">Show/hide #{cc.attrs.detailTitle}</a>
</div>
<div class="detail">
<cc:insertChildren />
</div>
</div>
</ezcomp:container>
</li>
</cc:implementation>
然而,这不会呈现任何东西。如果将<cc:renderFacet>
移到<ezcomp:container>
之外,它会按预期工作。有没有替代方案我没有看到或者我是否只需将li
和ezcomp:container
移到组件外部以使其工作?那是否是优先选择?
哦,<cc:insertChildren>
按预期工作。对我来说似乎很奇怪,一个人会失败而另一个会失败。
答案 0 :(得分:2)
我选择处理此问题的方法是将包装元素实现为模板。然后我使用ui:decorate在复合组件内输出该模板。原始包装器现在只在插入模板之前输出模板。