我的目标是,当我单击行中的按钮时,将其应用于行。
我已经在列中定义了一些按钮,如下所示:
contactlist.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数据表具有选项[rowClass],该选项允许函数在某些条件下应用样式。
就我而言:
<ngx-datatable #ngxtable [messages]="messages" [rows]="contacts" [rowClass]="isEditingRow"
以及在.ts中>
isEditingRow = (row) => {
return {
'selectedEditMode': (() => { return row.id === this.editingRowId })()
};
}