Typescript 通过在向数组添加新元素时不更新html,将NgFor嵌套在TRACKFOR中

Typescript 通过在向数组添加新元素时不更新html,将NgFor嵌套在TRACKFOR中,typescript,angular7,Typescript,Angular7,我已经使用Angular很长时间了,但是突然遇到了一个非常奇怪的问题。任何帮助都将不胜感激 我有一个包含headerArray和键值对的对象数组。其中一个关键点是headerGroup也是一个数组,所以我使用嵌套的ngFor。当数组中没有相同的元素时,它将更新html,但是当我向数组中添加新元素时,html不会在第一次单击中得到更新。但是,如果我更新了新添加的数组元素中的任何内容,就会反映出html的变化 这是我的代码示例 <ng-container *ngFor="let header

我已经使用Angular很长时间了,但是突然遇到了一个非常奇怪的问题。任何帮助都将不胜感激

我有一个包含headerArray和键值对的对象数组。其中一个关键点是headerGroup也是一个数组,所以我使用嵌套的ngFor。当数组中没有相同的元素时,它将更新html,但是当我向数组中添加新元素时,html不会在第一次单击中得到更新。但是,如果我更新了新添加的数组元素中的任何内容,就会反映出html的变化

这是我的代码示例

<ng-container *ngFor="let header of headerArray;let i=index;trackBy:trackHeaderArray">
   <ng-container *ngFor="let group of header.headerGroup;trackBy:trackGroupArray" matColumnDef="{{group.ColId}}">

//some lines of html code
 </ng-container>
   </ng-container>

//track by functions
  trackHeaderArray(index, header) {
        //  return  header.Id l
        return (index + 10 - header.Id);
    }
    trackGroupArray(index, group) {
        //return group ? group.Id : null

        return (index + 1000 - group.ColId);
    }



//一些html代码行
//按功能跟踪
轨头阵列(索引、收割台){
//返回标题.IDL
返回(索引+10-标题.Id);
}
trackGroupArray(索引,组){
//返回组?组Id:空
返回值(索引+1000-组ColId);
}

这可能与trackBy无关。需要更多代码详细信息,如您使用的更改检测技术、如何向数组添加新项以及是否使用任何第三方库?@AnkurAkvaliya我没有使用任何第三方库。每次我都将HeaderArray设置为空(HeaderArray=[]),并使用新元素再次创建整个数组