在 Angular 的材料表中单击按钮上的方法将 ID 发送到方法

Posted

技术标签:

【中文标题】在 Angular 的材料表中单击按钮上的方法将 ID 发送到方法【英文标题】:Sending an Id to a method on a button click in Material Table in Angular 【发布时间】:2020-09-12 05:07:10 【问题描述】:

我有以下材料表 “Action”的代码如下:

    <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>

该表的每一行在数据库中都有一个关联的 Special_Id此物料表的列。

接口代码如下:

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

材料表列代码:

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

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

【问题讨论】:

问候(element.special_id)? 【参考方案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>

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于在 Angular 的材料表中单击按钮上的方法将 ID 发送到方法的主要内容,如果未能解决你的问题,请参考以下文章

我如何确定在角度材料对话框中单击了哪个按钮

检索表中 *ngFor 元素的 ID - Angular

如何在 Angular 4 的材料设计表中添加复选框

如何在 AngularJS 材料设计中创建简单的搜索输入文本?

如何在 Angular 8 和 Angular 材料中单击 sidenav 中的菜单时在侧栏旁边显示我的组件

Angular JS - 从表中删除行的问题