2016-05-12 5 views
0

別のページのデータレンダリングに関する質問が1か所あります。すべてのページが多くのコンポーネントを使用してビルドされ、すべてのコンポーネントデータがページのjcrの場所に格納されます。/jcr:content/par/{コンポーネントリスト}。このページではデータが正しくレンダリングされています。/jcr:content/par/locationからすべてのコンポーネントデータを表示する方法はありますか?

は、今私は、この製品のページには、リポジトリ内で使用可能な場合、ページを検索するためのコンポーネント(すなわちユニークな製品)を作成する必要がある状況があり、私は、検索ボックスの下にそのデータをレンダリングする必要があります。このために、検索後にコンテンツをレンダリングするために使用するjsonを作成しています。

しかし、他の方法があれば、私は(すべてのコンポーネントデータの)jsonをビルドするのではなく、ページの/ parの場所からこのコンポーネントを含めることができます。表示の時間。

ページに/ par/{components}を追加するだけで、すべてのコンポーネントデータを表示する方法があるのだろうかと思います。このように私は開発をスピードアップすることができ、コンテンツを表示するためのより速い方法に見えます。事前に

感謝....

+0

あなたは[参照成分](https://docs.adobe.com/docs/en/aem/6-2/author/page-authoring/default-components/editmode.html#Reference)を見たことがありますか?それはあなたの必要性に十分ですか? – Abhishek

答えて

0

あなたは静的ページを持っている場合は、あなたが検索結果(製品リソース)とのリストを行くことができるが、それらの各々のために、製品をレンダリングするコンポーネントが含まれます。 Like:

<c:forEach items="${productsList}" var="productPath"> 
    <cq:include path="${productPath}" resourceType="/apps/you-project/components/product-component-name"/> 
</c:forEach> 

結果を動的に表示すると、製品リソースに対してajaxリクエストを行うことができます。このようなもの:

var productHtml = CQ.shared.HTTP.get(productPath + ".html"); 

またはJQueryを使用して同じです。その後、あなたのページにhtmlを追加することができます。彼らは、AJAXリクエストでロードされませんので しかし、第二のアプローチであなたは、結果ページを自分で検索するコンポーネント/アプリケーション/あなた-プロジェクト/コンポーネント/製品コンポーネント名からをclientlibsを追加する必要があります。

関連する問題