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>ます。私が見ていない代替手段はありますか、それとも機能させるためにコンポーネントの外側に移動する必要がliありますか? ezcomp:containerとにかくそれは好ましい代替手段ですか?

ああ、<cc:insertChildren>意図したとおりに動作します。一方が失敗し、もう一方が失敗しないというのは、私にはかなり奇妙に思えます。

4

1 に答える 1

2

これを処理するために選択したアプローチは、ラッパー要素をテンプレートとして実装することでした。次に、ui:decorate を使用して、そのテンプレートを複合コンポーネント内に出力します。元のラッパーは、子を挿入する前にテンプレートのみを出力するようになりました。

于 2013-02-08T12:38:34.277 に答える