Angular 角材质表内的按钮不工作

Angular 角材质表内的按钮不工作,angular,angular-material,angular-material-table,Angular,Angular Material,Angular Material Table,我有以下角度材质表设置: <table mat-table [dataSource]="getItems()"> <ng-container matColumnDef="delete"> <th mat-header-cell *matHeaderCellDef></th> <td mat-cell *matCellDef="let tariff"> <but

我有以下角度材质表设置:

    <table mat-table [dataSource]="getItems()">
      <ng-container matColumnDef="delete">
        <th mat-header-cell *matHeaderCellDef></th>
        <td mat-cell *matCellDef="let tariff">
          <button type="button" mat-button color="primary" (click)="test()">Delete</button>
        </td>
      </ng-container>

      ...

      <tr mat-header-row *matHeaderRowDef="dColumns"></tr>
      <tr mat-row *matRowDef="let row; columns: dColumns"></tr>
    </table>

  test() {
    console.log('test');
  }

删除
...
测试(){
console.log('test');
}
如果单击delete按钮,则不会调用test()方法。如果我删除“mat button”指令,按钮会突然工作

我在表单上有其他材质设计按钮,因此它不是模块导入问题

这里发生了什么


StackBlitz显示问题:

在mat表中,您可以使用如下按钮

                    <button
                        mat-icon-button
                        color="accent"
                        (click)="delete(row.id)"
                      >
                        <mat-icon aria-label="delete" class="md-20"
                            >delete</mat-icon
                        >
                    </button>

删除

[dataSource]
更改为数组而不是函数可以解决问题

这可能是由于不恰当地使用垫子桌而导致的奇怪行为

角度材质表要求
[dataSource]
是一个数组,或者对于更复杂的应用程序,是一个dataSource实例


我过去也有类似的问题。
*ngFor
中的按钮对我来说不像您的示例中那样有效

不起作用的示例中,按钮的行为与您的类似:

这就是问题解决的时候:

也许这会有帮助:


这就是我仅使用mat按钮指令的方式。我只想发短信。你的回答解决了这个问题,谢谢。看起来像是一只有棱角的虫子。谢谢你的帮助。