1

我有以下在此处输入图像描述 “动作”的材料表代码如下:

    <ng-container matColumnDef="Action">
      <th mat-header-cell *matHeaderCellDef> Action</th>
        <td mat-cell *matCellDef="let element">
          <i class="material-icons mat-icon-button" (click)="greeting(element)">open_in_new</i> </td>
  </ng-container>

该表的每一行在我通过 GET REST 调用获得的数据库中都有一个关联的Special_Id,以及所有这些数据,但未显示在 UI 中,因此这不是该材料表列的一部分。

接口代码如下:

export interface PeriodicElement {
  special_id:string;
  name: string;
  position: number;
  weight: number;
  symbol: string;
}

材料表列代码:

displayedColumns: string[] = ['position', 'name', 'weight', 'symbol','Action'];

单击每一行对应的操作按钮时,会调用方法greeting(element) 。我的挑战是将 Special_Id 作为参数传递给方法“问候”。我怎样才能做到这一点?AngularJS 对我来说很新,我不知道该怎么做。

4

2 回答 2

1

你试过了吗:

<ng-container matColumnDef="Action">
  <th mat-header-cell *matHeaderCellDef> Action</th>
  <td mat-cell *matCellDef="let element">
    <i class="material-icons mat-icon-button" 
       (click)="greeting(element.special_id)">
      open_in_new
    </i> 
  </td>
</ng-container>

您还可以在行上设置链接

<ng-container matColumnDef="Action">
  <th mat-header-cell *matHeaderCellDef> Action</th>
  <td mat-cell *matCellDef="let element" (click)="greeting(element.special_id)">
    <i class="material-icons mat-icon-button">
      open_in_new
    </i> 
  </td>
</ng-container>
于 2020-05-25T14:54:42.513 回答
-1

即使 special_id 不是列数组的一部分,您的元素也是具有该字段的对象。所以你可以直接将它作为参数传递,你的 id 将被传递给方法。只需调用greeting(element.special_id)

于 2020-05-25T14:53:08.923 回答