2017-03-06 8 views
1


私は、以下のように、これらのコンポーネント、クラスBとCを別のテンプレートで取得しました。Angular2:テンプレートを反復する方法

@Component({}) 
export abstract class A {} 

@Component({ 
    template: `BBBBBB` 
}) 
export class B extends A{} 

@Component({ 
    template: `CCCCCC` 
}) 
export class C extends A{} 

私の主なコンポーネントでは、Aの配列を繰り返してHTMLのテンプレートを挿入する必要があります。

@Component({ 
    template: ` 
    <div> 
    ...???... 
    </div> 
    ` 
}) 

export class MrModul { 
    anArray: A[] = Array(); 
    constructor(){ 
     ... 
     //filling up the Array 
     ... 
    } 
} 

だから私は '???'適切なテンプレートで、私は配列を反復処理している間、私は実際にどのように知っていません。私がセレクタを使用する場合、私は実際にどのセレクタを使うべきかわかりません。しかし、私が*ngForを使用する場合、私はどの属性を使うべきか分かりません。
あなたは私を助けることができますか?どうも!

ボーナス情報: 目標はウィジェットシステムのようなものです。ランダムなタイプを選択して追加することができます - それを呼び出す - ウィジェット、それらは新しいdivに入れられます。新しいウィジェットを格納するための配列です。

+0

配列にはどのようなデータが含まれていますか?どのような情報を表示したいのですか? –

+0

私はギュンターに同意します。あなたの配列に関する詳細情報が必要です – yurzui

+0

ArayにはBまたはCが含まれています。だから、私はコンポーネントそのものが必要です。例えば、Bはイメージを意味し、Cはグラフなどです...これらは別々のテンプレートが必要です – HPeter

答えて

1
<ng-content *ngFor="let item of anArray"> 
    <my-a *ngIf="item.compo == 'a'></my-a> 
    <my-b *ngIf="item.compo == 'b'></my-b> 
    <my-c *ngIf="item.compo == 'c'></my-b> 
</ng-content> 
+0

もう少し柔軟なものが必要ですが、どのくらい多くのタイプがあるのか​​は分かりませんが、別のものをたくさん書いてはいけません。 – HPeter

+0

あなたの質問。より柔軟なアプローチはhttp://stackoverflow.com/questions/36325212/angular-2-dynamic-tabs-with-user-click-chosen-components/36325468#36325468 –

+0

です。これを答えとしてマークしますこの答えに基づいて解決策を作りました。ラッパーコンポーネントを作成した後、ngSwitchを使用しました。どうも! – HPeter