【问题标题】:Angular 2 *ngFor nested loopAngular 2 *ngFor 嵌套循环
【发布时间】:2017-06-10 06:15:02
【问题描述】:

我有两个课程:Produkt 和 Werbedaten。 werbedaten 类有一个 produckt 数组。

我想使用 *ngFor 公开一个具有 Produkts 数组的 werbedaten 数组

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>

执行此代码时显示错误。

谁能帮帮我?

【问题讨论】:

  • 错误是什么?

标签: angular ngfor


【解决方案1】:

我主要是猜测你的问题是什么,因为你没有提到你遇到了什么错误。

我通过向 Produkt 和 WD 类添加构造函数来让你的示例工作

例如

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

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

在您的示例中,没有构造函数,编译器会吐出以下错误:

提供的参数与调用目标的任何签名都不匹配。

这是有道理的,因为没有构造函数,我们还没有告诉编译器如何用参数实例化一个新产品。

另一种解决方案

如果您不想为您的类定义构造函数,您也可以在应用组件中定义 produkts1 属性,如下所示:

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

【讨论】:

  • 我有像你在我的代码中编写的构造函数,但我不知道为什么它昨天不工作,但现在工作。非常感谢。
猜你喜欢
  • 2017-09-30
  • 2018-10-13
  • 2020-01-23
  • 2018-03-31
  • 2018-06-11
  • 2017-07-01
  • 2021-01-12
  • 1970-01-01
相关资源
最近更新 更多