我有一个表格,我在其中显示Json对象值,并有一个模型,我可以在其中添加新数据,然后我会在表格中显示这些值。
<tbody>
<tr *ngFor="let row of icDataToDisplay.icdata; let icIndex=index">
<td [ngClass]="editMode && clickedRowIndex === icIndex? 'edit-enabled': ''">{{row.Device_Type}}</td>
<td [ngClass]="editMode && clickedRowIndex === icIndex? 'edit-enabled-category': ''">{{row.Device_Model}}</td>
<td [ngClass]="editMode && clickedRowIndex === icIndex? 'enabled-recommendation': ''">
<span *ngIf="editMode && clickedRowIndex !== icIndex">{{row.Recommended_Software_Version}}</span>
<span *ngIf="!editMode && clickedRowIndex !== icIndex">{{row.Recommended_Software_Version}}</span>
<input type="text" class="enabled-hw" [(ngModel)]="row.Recommended_Software_Version" (ngModelChange)="onChange($event, 'Recommended_Software_Version')"
*ngIf="editMode && clickedRowIndex === icIndex" />
</td>
</tr>
</tbody>
组件
public addSoftwareIcData() {
this.configManagementService.postIcData(this.clickedProductFamily,
'', this.icDataObject, 'Software').
subscribe((response) => {
if (response.status === 200) {
this.closeAddIcModal();
this.myData = 'IC data added successfully.';
this.icDataList = response;
this.ref.markForCheck();
} else if (response.status === 304) {
this.info = response.message;
}
});
}
在模式中,它是一个POST api调用,并且响应将包含新添加的数据以及旧数据。我重新分配api数据icDataToDisplay.icdata进行渲染。
问题是即使icDataToDisplay.icdata值已更改,视图也不会更新。为什么Angular没有执行自动更改检测?我试过this.ref.markForCheck();改变Angular的探测器,但它没有工作。请建议