代码之家  ›  专栏  ›  技术社区  ›  Nikhila Mohan

数据表未重新加载-启动

  •  1
  • Nikhila Mohan  · 技术社区  · 7 年前

    为此,我正在使用 primeNG

    mycomponent。html

     <p-dataTable [value]="tabledata">
        <p-column field="vin" header="Vin"></p-column>
        <p-column field="year" header="Year"></p-column>
        <p-column field="brand" header="Brand"></p-column>
        <p-column field="color" header="Color"></p-column>
    </p-dataTable>
    

    iam在删除时切片数据源

    mycomponent。输电系统

    this.tabledata.slice(this.tabledata.indexOf(datatodelete), 1); 
    
    2 回复  |  直到 7 年前
        1
  •  2
  •   eddyP23    7 年前

    请阅读本章 Change detection 你的链接 provided .

    基本上,这个想法是,您可能会对存储表值的数组进行变异,而angular不知道数据已经更改,因为数组仍然是相同的。所以,您需要使用旧数组中的所有值创建一个新数组,但删除的值除外。然后,angular将计算出,由于数组引用将更改,它需要重新命名表。

    请阅读有关角度变化检测策略的更多信息,例如:。 here . 基本上,如果你使用检测策略 default ,然后一切都会工作,因为angular将始终检查所有组件的变化。但是,对于较大的网页,速度可能非常慢,因此建议使用更改检测策略 OnPush

        2
  •  0
  •   Nikhila Mohan    7 年前

     this.datatablecopy = Object.assign([], this.datatable);
    
    
    this.datatablecopy.slice(this.datatablecopy.indexOf(datatodelete), 1); 
    this.datatable = this.datatablecopy;