2013-01-31 18 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:裝飾來在複合組件內輸出該模板。原始包裝器現在只在插入子模板之前輸出模板。