【发布时间】:2020-06-13 23:07:54
【问题描述】:
我有一个具有以下结构的角材料表。
<table mat-table [dataSource]="myTable" matSort>
<ng-container matColumnDef="column1">
<th mat-header-cell *matHeaderCellDef>My Column</th>
<td mat-cell *matCellDef="let row">{{ row.element1 }}</td>
</ng-container>
<ng-container matColumnDef="emailButton">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let row">
<button mat-mini-fab color="primary" type="button"
(click)="sendReminder(row)">
<mat-icon>email</mat-icon>
</button>
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns" [routerLink]="['../edit-data-row', row.dataId]"></tr>
</table>
我希望表格中的任何行都是可点击的,并且用户被路由到 routerLink 指令中定义的路由,并且可以按预期工作。
但是,我有一个按钮在行中单击时,我不希望用户被路由到路由器链接。我只是想让 (click) 事件触发。我已经尝试在我的按钮上使用(click)="$event.preventDefault(); $event.stopPropogation(); sendReminder(row)",正如我已经进行的研究中提到的那样,但这似乎不起作用。
我还看到我可以添加一个指令来阻止路由器导航。对此有何想法?
最后,我还看到了一个向表格行添加点击处理程序的实例。但我想我会遇到同样的问题。想法?
【问题讨论】:
标签: angular angular-routing angular-routerlink