2016-09-20 4 views
1

親コンポーネントにテンプレートの子コンポーネントの属性からデータを収集する方法が問題です。 親テンプレートは次のようになります。子コンポーネントから属性からデータを収集する方法角2

<ion-content> 
    <blocks-banners-slideshow class="contentBlock" [zone]="'main'" [slideOptions]="{loop:true}"></blocks-banners-slideshow> 
    <blocks-catalog-category class="contentBlock" [root]="0"></blocks-catalog-category> 
    <blocks-catalog-topproducts class="contentBlock" [dirs]="[0]" ></blocks-catalog-topproducts> 
</ion-content> 

私はコンポーネント・ブロック・バナー・スライドショー、ブロック・カタログ・カテゴリ、ブロック・カタログ・topproductsを持っています。 親コンポーネントの[ゾーン]、[ルート]、[ディレクトリ]などの属性からデータを収集するために、このコンポーネントをどうにかループする必要があります。

ご意見はありますか?

答えて

0

ViewChildでアクセスできます。

は、あなたのお子様の名前を付け、またはその代わりにタイプを使用します。

<ion-content> 
    <blocks-banners-slideshow #bbs class="contentBlock" [zone]="'main'" [slideOptions]="{loop:true}"></blocks-banners-slideshow> 
    <blocks-catalog-category #bcc class="contentBlock" [root]="0"></blocks-catalog-category> 
    <blocks-catalog-topproducts #bct class="contentBlock" [dirs]="[0]" ></blocks-catalog-topproducts> 
</ion-content> 

そして、あなたのコンポーネントで:

@ViewChild('bbs') bbs1: BlocksBannersSlideshowComponent; 
@ViewChild(BlocksBannersSlideshowComponent) bbs2: BlocksBannersSlideshowComponent; 

@ViewChild('bcc') bcc1: BlocksCatalogCategoryComponent; 
@ViewChild(BlocksCatalogCategoryComponent) bcc2: BlocksCatalogCategoryComponent; 
... 

このイベントが発生した後にこれらの変数がアクセス可能である:ngAfterViewInit()

または動的に追加コンポーネントのViewChildrenを使用します。

@ViewChildren(BlocksBannersSlideshowComponent) bbsChilds: QueryList<BlocksBannersSlideshowComponent>; 

@ViewChildren(BlocksCatalogCategoryComponent) bccChilds: QueryList<BlocksCatalogCategoryComponent>; 
... 

そしてngAfterViewInit()の中にあるものをquerylistsを購読する:

this.bssChilds.changes.subscribe(...); 
+0

は良いアイデアをIt'is。ありがとうございました。しかし、もしテンプレートがウェブサーバのディナミカルに作成されているとすれば? –

+0

そして、親コンポーネントのコンポーネントをループする方法を知っていますか? –

+0

ループ?どのコンポーネントをループしたいですか? – mxii

関連する問題