2017-06-10 11 views
-1

私は2つのクラス、ProduktとWerbedatenを持っています。 werbedatenクラスには配列があります。私はwerbedaten配列ウィッヒを公開する角度2 * ng入れ子ループの場合

は* ngFor

export class Produkt { 
    public artikelNummer: number; 
    public hauptabbildung: string; 
} 

export class WD { 
    public nummer: number; 
    public name: string; 
    public produkts: Produkt[]; 
} 

export class AppComponent { 
    produkts1: Produkt[] = [ 
    new Produkt(1, ''), 
    new Produkt(2, ''), 
    new Produkt(3, '') 
]; 
werbedaten: WD[] = [ 
    new WD(1, 'Muesli', this.produkts1) 
]; 
} 

<div *ngFor="let werbe of werbedaten"> 
    {{werbe.nummer}} {{werbe.name}} 
    <p *ngFor="let produkt of werbe.produkts"> 
     {{produkt.artikelNummer}} 
    </p> 
</div> 

私はこのコードをやっているときにエラーが表示さを使用してProduktsアレイを有します。

誰でも助けてくれますか?

+6

エラーは何ですか? – Sajeetharan

答えて

0

私はあなたが何を得ているのかについて言及していないので、あなたの問題が何であるかとほとんど推測しています。

私は、コンストラクタなしで、あなたの例では

export class Produkt { 
    public artikelNummer: number; 
    public hauptabbildung: string; 

    constructor(aArtikelNummer: number, aHauptabbildung: string){ 
     this.artikelNummer = aArtikelNummer; 
     this.hauptabbildung = aHauptabbildung; 
    } 
} 

例えばクラスPRODUKTとWD

にコンストラクタを追加することで動作するようにあなたの例だと、コンパイラは、私たちの次のエラーを吐きます:

Supplied parameters do not match any signature of call target.

これは、コンストラクタがなければ、コンパイラにどのようにinstパラメータを持つ新しい製品を防止する。

別ソリューション

あなたのクラスのコンストラクタを定義したくない場合は、また、そうのようなアプリのコンポーネントでprodukts1プロパティを定義することができます。

produkts1: Produkt[] = [ 
    {artikelNummer:1, hauptabbildung:''}, 
    {artikelNummer:2, hauptabbildung:''}, 
]; 
+1

私はあなたのコードのようなコンストラクタを持っていますが、なぜそれが昨日働いていなかったのかわかりませんが、現在は動作しています。どうもありがとう。 – Talal