首页 > 解决方案 > 打字稿:如何在对象更改时使用动态表行更新表

问题描述

这是我的html代码:

</table>
  <tr *ngFor="let task of taskArray">
    <td>{{task.startTime}}</td>
    <td>{{task.endTime}}</td>
    <td></td>
    <td>{{task.action}}</td>
    <td>{{task.glevel1}}</td>
    <td>{{task.glevel2}}</td>
    <td>{{task.glevel3}}</td>
    <td>{{task.glevel4}}</td>
    <td>{{task.glevel5}}</td>
    <td>{{task.train}}</td>
    <td>{{task.trainType}}</td>
    <td>{{task.wagon}}</td>
    <td>{{task.repeaterWagon}}</td>
    <td>{{task.remark}}</td>
  </tr>
</table>

这是我的 ts 代码(我将一个对象发送到另一个组件,在那里我将对象推送到对象数组中):

taskArray: Task[] = [];

fillTable(task){
  this.taskArray.push(task);
}

在我触发了函数fillTable(task)之后,它不会更新表,相应的不会将 tablerows 添加到表中。看起来,我的表在更改对象后没有更新。也许这与我将对象发送到另一个组件有关。因为它既不适用于我的表格,也不适用于选择或其他 html 对象。

我希望能够更改对象并进一步更新或更改表。

如何触发表上的更新?

[更新]

我应该提到我在我的“父 html”中包含了这个表格所在的组件:

<div id="taskTableDiv" style="width: 98%">
    <app-task-table></app-task-table>
</div>

标签: htmlangulartypescriptdata-bindingngfor

解决方案


推送任务后尝试分配数组。如果您只是将项目添加到已绑定的数组中,则不会发生绑定更改检测。

 this.taskArray = [new Task()]; 

推荐阅读