Html Typescript:当对象发生更改时,如何使用动态tablerows更新表

Html Typescript:当对象发生更改时,如何使用动态tablerows更新表,html,angular,typescript,data-binding,ngfor,Html,Angular,Typescript,Data Binding,Ngfor,这是我的html代码: </table> <tr *ngFor="let task of taskArray"> <td>{{task.startTime}}</td> <td>{{task.endTime}}</td> <td></td> <td>{{task.action}}</td> <td>{{task.gleve

这是我的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>
在我启动函数fillTable(task)后,它不会更新表,也不会向表中添加tablerows。看起来,我的表在更改对象后没有更新。也许这与我将对象发送到另一个组件有关。因为它既不适用于我的表,也不适用于select或其他html对象

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

如何触发表上的更新

[更新]

我应该提到的是,我在“父html”中包含了这个组件,其中的表如下所示:


在推送任务后尝试分配数组。如果只向已绑定的数组中添加一个项,则不会发生绑定的更改检测

 this.taskArray = [new Task()]; 

我想回答我的问题,因为我找到了一个解决方案:

我现在使用一个名为任务服务的服务:

我在表组件的ts中启动任务服务,如下所示:

constructor(public taskService: TaskService) { }
我在同一个html组件中执行*ngFor循环,就像在我的表体中一样:


.
.
.
像这样,它会更新表,因为服务保存变量并使其保持最新


您可以在此处找到相关教程:

谢谢。但这对我不起作用。这会重新加载整个页面,我只想更新表。如果我重新加载页面,它将重置页面上的所有内容。我更新了我的问题。fillTable(任务)将在单击按钮或何时执行?请编辑您的答案,添加代码如何工作以及如何解决OP问题的解释。很多海报都是新手,不会理解您发布的代码。这也可能无法解决此类问题,因为这就像一个“典型”的信息学答案-->重新启动您的电脑,看看它是否工作。使用服务是否可行?我同意,但会这样重新分配:
this.taskArray=[…this.taskArray]
fillTable(task){
  this.taskArray.push(task);
  location.reload();
}
 this.taskArray = [new Task()]; 
import { Injectable } from '@angular/core';
import { Task } from './task';

@Injectable({
  providedIn: 'root'
})
export class TaskService {
  taskArray: Task[] = [];

  fillTable(task: Task){
    this.taskArray.push(task);

    console.log(this.taskArray)
  }
}
constructor(public taskService: TaskService) { }
<tbody>
  <tr *ngFor="let task of taskService.taskArray">
.
.
.
  </tr>
</tbody>