css - Ngx-datatable 在悬停时显示图标
问题描述
我正在尝试实现一个 ngx-datatable,只有当鼠标悬停在行上时,我才需要显示删除图标。现在,当我将光标放在行上时,它会在所有行中显示删除图标,而不是正确的行。那么,这样做的正确方法是什么?
<ngx-datatable [rows]="rows"
class="material"
[columns]="columns"
[columnMode]="'force'"
[headerHeight]="0"
[footerHeight]="50"
[rowHeight]="'auto'"
[reorderable]="reorderable">
<ngx-datatable-column>
<ng-template let-column="column" ngx-datatable-header-template>
Title
</ng-template>
<ng-template let-row="row" ngx-datatable-cell-template>
<span class="title-date">{{row.title}} </span> <span class="author"> - {{row.author}} -</span>
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column>
<ng-template let-column="column" ngx-datatable-header-template>
Date
</ng-template>
<ng-template let-row="row" ngx-datatable-cell-template>
<span class="title-date">{{row.created_at | dfnsDistanceInWordsToNow }}</span>
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column>
<ng-template let-column="column" ngx-datatable-header-template>
Action
</ng-template>
<ng-template let-row="row" ngx-datatable-cell-template>
<mat-icon (click)="openDialogWithoutRef(row._id)" class="show-on-hover" class="inline-icon">delete</mat-icon>
</ng-template>
</ngx-datatable-column>
</ngx-datatable>
解决方案
ngx-datatable 有一个激活输出,您可以使用它来侦听鼠标单击、mouseenter 或 keyup 事件。所以你可以简单地这样做:
<ngx-datatable
class="material"
[rows]="users$ | async"
[columnMode]="ColumnMode.force"
[headerHeight]="50"
[footerHeight]="50"
rowHeight="auto"
(activate)="onActivate($event)"
>
<ngx-datatable-column name="First Name">
<ng-template let-row="row" ngx-datatable-cell-template>{{ row && row.staff_id.first_name }}</ng-template>
</ngx-datatable-column>
...
因此,您可以编写一个函数来处理 mouseenter 事件。唯一的问题是它不会触发 mouseleave 事件,这是我一直试图弄清楚的。
PS:对于您的用例,您应该检查事件类型以确保它是鼠标输入。像这样的东西
onActivate (e) {
const { type, row } = e;
if (type === 'mouseenter') {
this.showAction = row._id;
}
}
这是文档的链接
https://swimlane.gitbook.io/ngx-datatable/api/table/outputs#activate
我希望这有帮助...
干杯
推荐阅读
- actions-on-google - 在 Dialogflow Essentials 中部署我的内联编辑器代码以显示网页
- kubernetes - Helm 3 通过代理服务器安装错误
- python - Socket发送数据两次
- powerquery - 如何在电源查询中选择特定列
- java - 如何在spock中模拟可选的对象列表
- algorithm - 时间复杂度和theta算法
- eclipse - Eclipse - 如何创建 SQL 文件?
- azure - Azure 数据工厂 - Azure SQL 托管服务不正确的输出列类型
- python - 如何将 m*n 列表转换为 n*m 列表?
- c++ - C++ DirectX 9 未解析的外部符号