2017-06-10 81 views
-1

我有兩個類:Produkt和Werbedaten。 werbedaten類有一個produckt數組。Angular 2 * ng對於嵌套循環

我要揭露一個werbedaten陣列至極具有使用Produkts陣列* 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> 

它顯示錯誤,當我做這個代碼。

任何人都可以幫助我嗎?

+6

什麼錯誤? – Sajeetharan

回答

0

我主要猜測你的問題是因爲你沒有提到你得到的錯誤。

我得到了你的榜樣,加入構造函數的類PRODUKT和WD

例如

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

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

在你的榜樣,沒有一個構造函數的工作,編譯器吐出了以下錯誤:

Supplied parameters do not match any signature of call target.

這是有道理的,因爲如果沒有構造函數,我們還沒有告訴編譯器如何安裝反對帶參數的新產品。

另一種解決方案

如果你不想定義你的類的構造函數,你也可以在你的應用程序組件定義produkts1屬性,像這樣:

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

我有像你在我的代碼中寫的構造函數,但我不知道爲什麼它昨天不工作,但它現在工作。非常感謝。 – Talal