【问题标题】:Array.push create 2 rows in the table using Angular 4Array.push 使用 Angular 4 在表中创建 2 行
【发布时间】:2019-03-06 17:01:01
【问题描述】:

我有 2 个相同的数组,除了 2 个项目是 2 个 fakeDates:

 this.prodotti.push({ idAgreement: this.idAgreement,landingStatus: this.landingStatus, landingType: this.landingType, startDate: this.startDate, expirationDate: this.expirationDate, landingURL: this.landingURL, landingRequestURL: this.landingRequestURL, landingTaegMax: this.landingTaegMax, landingPF: this.landingPF });

 this.prodotti2.push({ idAgreement: this.idAgreement,fakeExpirationDate:this.fakeExpirationDate,fakeStartDate:this.fakeStartDate, landingStatus: this.landingStatus, landingType: this.landingType, startDate: this.startDate, expirationDate: this.expirationDate, landingURL: this.landingURL, landingRequestURL: this.landingRequestURL, landingTaegMax: this.landingTaegMax, landingPF: this.landingPF });

当我尝试将它们推送到我的 html 表中时,添加了 2 行而不是 1 行,即使在我的代码中绑定的数组是 prodotti2

HTML:

<tr *ngFor="let row of prodotti2; let i = index">
            <td>
              <div class="celleProd">
                <input class="mdl-textfield__input" type="text" style="text-align: center" value="{{row.landingType}}" id="sample3" pattern="[A-Za-z0-9]+"
                  readonly="true">
              </div>
            </td>

那么为什么每次推送 2 个数组时它都会创建 2 行?

【问题讨论】:

  • 您如何调用.push 代码?该方法是否被调用了两次?
  • prodottiprodotti2 有可能是同一个数组吗?
  • 它只需按一下按钮就被调用一次,@IanMacDonald 没有两个数组不同。奇怪的是,我在另一个组件中做同样的事情而且效果很好......我很困惑:)
  • 你是如何实例化这两个数组的?当它创建两行时,它们是两个相同的行,还是一行插入第一个数组,第二行插入第二个数组?
  • 一行来自prodotti,一行来自prodotti2

标签: arrays angular typescript html-table


【解决方案1】:

您可以使用 console.log(prodotti2) 来查看上面是否只有一个项目,并且当您使用 *ngFor 时不要使用 id = sample3,如果您使用类似 id= sample{ 会更好{i}} ...对不起,我没有发表评论的声誉...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 1970-01-01
    • 2017-08-07
    相关资源
    最近更新 更多