angular - ngx-datatable 获取行的 CSS
问题描述
我的目标是当我单击行内的按钮时将一个类应用于一行。
我在列中定义了一些按钮,如下所示:
联系人列表.component.html
<ngx-datatable #ngxtable [messages]="messages" [rows]="contacts"
[rowHeight]="env.ngx.datatableRowHeight" [headerHeight]="env.ngx.datatableHeaderHeight" [columnMode]="env.ngx.columnModeFlex" [ngClass]="env.ngx.datatableClass" class="datatableSmall">
<ngx-datatable-column name="name" [flexGrow]="4">
<ng-template let-column="column" ngx-datatable-header-template>
<span>Nombre</span>
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column *ngIf="!isSmallScreen" name="phone" [flexGrow]="2">
<ng-template let-column="column" ngx-datatable-header-template>
<span>Telf</span>
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column *ngIf="!isSmallScreen" name="cellPhone" [flexGrow]="2">
<ng-template let-column="column" ngx-datatable-header-template>
<span>Móvil</span>
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column *ngIf="!isSmallScreen" name="mail" [flexGrow]="4">
<ng-template let-column="column" ngx-datatable-header-template>
<span>Correo</span>
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column name="Acciones" sortable="false" [flexGrow]="3">
<ng-template let-row="row" let-rowIndex="rowIndex" let-value="value" ngx-datatable-cell-template>
<ion-button *ngIf="!editMode" fill="clear" size="small" (click)="edit(row, rowIndex)">
<ion-icon slot="icon-only" name="create" color="black"></ion-icon>
</ion-button>
<ion-button *ngIf="!editMode" fill="clear" size="small" (click)="remove(row.id)">
<ion-icon slot="icon-only" name="remove-circle-outline" color="black"></ion-icon>
</ion-button>
</ng-template>
</ngx-datatable-column>
</ngx-datatable>
使用 .ts 中定义的函数,我可以获得行值,但永远无法访问应用于该行的类。
我通过以下方式获得了对 Datatable 对象的引用:
@ViewChild('ngxtable', {static: false})
private ngxTable: DatatableComponent;
但我看不到任何对行样式的引用。
解决方案
好的,找到解决方案。
无需获取对数据表的任何引用。Ngx Datatable 有一个选项 [rowClass] 允许函数在某些条件下应用样式。
就我而言:
<ngx-datatable #ngxtable [messages]="messages" [rows]="contacts" [rowClass]="isEditingRow"
在 .ts
isEditingRow = (row) => {
return {
'selectedEditMode': (() => { return row.id === this.editingRowId })()
};
}
推荐阅读
- c# - 如何从 Blazor 中的 HttpClients 关闭浏览器控制台中的“信息”登录?
- java - 带参数的 Java 方法调用,使用流 api
- html - 有没有办法让内部 CSS 表格扩展外部 CSS 表格的整个宽度?
- r - 根据另一个输入 r shiny 更改输入值
- javascript - 使用来自其他 npm 包的 gulp 文件(导入最终会存在的文件)
- reactjs - 请帮我!我不知道我做错了什么
- python - 如何使用 pyinstaller 将 chromedriver.exe 与在 selenium webdriver 上运行的 python 脚本合并?
- r - 错误地更改R中的内置数据框,如何改回来
- twitter-bootstrap - 如何使用自定义颜色@extend 引导类
- kubernetes - 如何在没有端口转发的情况下从本地机器访问 kubernet 服务?