2013-01-31 19 views
2

我有一个组件用于在其子元素周围添加一个容器。该组件在其他组件中使用时没有任何问题。但我想能够使用这样一个方面:嵌套复合组件内的输出面

<!-- 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>以外,它将按预期工作。有没有替代方案我没有看到,或者我是否只需将liezcomp:container移到组件外部就可以使用?无论如何,这是否是优先选择?噢,<cc:insertChildren>按预期工作。对我来说似乎很奇怪,一个人会失败,但不会失败。

回答

2

我选择处理这种方法是实现包装元素作为模板。然后我使用ui:装饰来在复合组件内输出该模板。原始包装器现在只在插入子模板之前输出模板。