Ionic/Angluar NGX 数据表:将布尔值转换为字符串

Ionic/Angluar NGX Datatable: Transform boolean values to string

我正在开发一个 Ionic/Angular 应用程序并且我正在使用 NGX 数据table。它工作得很好,但我需要显示一列的布尔值而不是“true”或“false”(英语) - 我需要用德语显示布尔值(“true”=“Ja”,“false " = "不存在").

问题是我使用的是自动生成的列,所以我在 html 中的数据table 看起来像这样:

<ngx-datatable [selectionType]="'single'" (select)="openDetailsPage($event)" [messages]="messages"
        class="bootstrap" [limit]="10" [rows]="allOpenTickets" [rowHeight]="50" [columns]="columns"
        [columnMode]="'force'" [sortType]="'multi'" [headerHeight]="50" [footerHeight]="50"
        [rowClass]="getRowClass">
</ngx-datatable>

我用打字稿定义我的专栏,例如:

this.columns = [
    { name: 'Id', prop: 'id' },
    { name: 'Ziel', prop: 'goalDate', pipe: this.datePipe() },
    { name: 'Erstellt', prop: 'created' , pipe: this.datePipe() },
    { name: 'Titel', prop: 'title' },
    {name:'Erledigt',prop:'done'}
];

如您所见,我使用日期类型来转换日期,是否有类似布尔值的管道之类的东西?还是我不应该使用自动生成的列,而是创建自己的列?

我的最终 table 应该是这样的: final table picture

您可以使用您希望转换数据的任何类型的管道 - 甚至是您的自定义管道(根据文档 here). This is the signature of a PipeTransform

所以您可能想要以下内容:

germanBooleanPipe(): PipeTransform {
  return {
    transform: (value: boolean) => value ? "Ja" : "Nein";
}

并将该管道应用于您的列:

this.columns = [
    { name: 'Id', prop: 'id' },
    { name: 'Ziel', prop: 'goalDate', pipe: this.datePipe() },
    { name: 'Erstellt', prop: 'created' , pipe: this.datePipe() },
    { name: 'Titel', prop: 'title' },
    { name:'Erledigt', prop:'done', pipe: this.germanBooleanPipe() }
];

请注意,我自己从未使用过 ngx-datatable,因此可能需要进行一些小的调整。