如何捕获Material Design md表中的选定表行

nsk*_*nsk 18 material-design angular

我有一个要求,我应该能够捕获所选行[用户可以点击该行的任何位置].我浏览了文档https://material.angular.io/components/table/overview,但我找不到捕获所选行及其内容的方法.我试图在md-table标签上附加一个click事件, 但它没有用.

<md-table #table [dataSource]="tableDataSource" (click)="selectRow(row)">
Run Code Online (Sandbox Code Playgroud)

Jos*_*ven 23

我能够让它如此运作:

在component.html中

  <md-table [dataSource]="dataSource">
    <ng-container mdColumnDef="a">
      <md-header-cell *mdHeaderCellDef> a </md-header-cell>
      <md-cell *mdCellDef="let element"><a routerLink="{{element.number}}"> {{element.a}} </a></md-cell>
    </ng-container>

    <ng-container mdColumnDef="b">
      <md-header-cell *mdHeaderCellDef> b </md-header-cell>
      <md-cell *mdCellDef="let element"> {{element.b}} </md-cell>
    </ng-container>

    <md-header-row *mdHeaderRowDef="['a', 'b']"></md-header-row>
    <md-row *mdRowDef="let row; columns: ['a', 'b']" (click)="selectRow(row)"></md-row>
  </md-table>
Run Code Online (Sandbox Code Playgroud)

并在component.ts

  selectRow(row) {
      console.log(row);
  }
Run Code Online (Sandbox Code Playgroud)


Jal*_*ini 12

https://material.angular.io/components/table/overview

您可以将click事件添加到具有mat-row属性的tr元素,并且您可以访问有关*matRowDef ="let row;"的行.如下:

    <table mat-table [dataSource]="dataSource" class="mat-elevation-z8">

      <!-- Position Column -->
      <ng-container matColumnDef="position">
        <th mat-header-cell *matHeaderCellDef> No. </th>
        <td mat-cell *matCellDef="let element"> {{element.position}} </td>
      </ng-container>

      <!-- Name Column -->
      <ng-container matColumnDef="name">
        <th mat-header-cell *matHeaderCellDef> Name </th>
        <td mat-cell *matCellDef="let element"> {{element.name}} </td>
      </ng-container>


      <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
      <tr mat-row *matRowDef="let row; columns: displayedColumns;" (click)="selectRow(row)"></tr>
    </table>
Run Code Online (Sandbox Code Playgroud)

selectRow(row)是应该在组件内部写入的函数.


nsk*_*nsk 1

我可以通过在 md-row 上附加点击事件 [selectRow(row)] 来完成这项工作

<md-table #table [dataSource]="tableDataSource">
   <md-header-row *cdkHeaderRowDef="tableColumns"></md-header-row>
   <md-row *cdkRowDef="let row; columns: tableColumns;" (click)="selectRow(row)"></md-row>
   <ng-container cdkColumnDef="day">
Run Code Online (Sandbox Code Playgroud)