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