首页 > 解决方案 > 表 primeNg 5.2.7 - 嵌套对象

问题描述

我用 primeNg 绘制了一个表,该表有一个对象,该对象又包含其他对象。

// 控制器

this.cols = [
        { field: 'persona', subfield: 'dni', header: 'NIF' },
        { field: 'persona', subfield: 'nombre', header: 'Nombre' },
        { field: 'persona', subfield: 'apellido1', header: 'Apellido 1' },
        { field: 'persona', subfield: 'apellido2', header: 'Apellido 2' },
        { field: 'emailEmpresa', header: 'Email' }
    ];

// 看法

 <ng-template pTemplate="body" let-rowData let-columns="columns">
        <tr [pSelectableRow]="rowData">
            <td *ngFor="let col of columns">
                <div *ngIf="col.subfield;then nested_object_content else normal_content"></div>
                <ng-template #nested_object_content>
                    {{rowData[col.field][col.subfield]}}
                </ng-template>
                <ng-template #normal_content>
                    {{rowData[col.field]}}
                </ng-template>
            </td>
        </tr>
   </ngTemplate>

// 问题是导出到 csv 时:

dataTable.exportCSV();

// 当创建 CSV 而不是放置嵌套值的值时,我得到以下信息:

[object Object]

如何正确获取价值?

标签: primeng

解决方案


您可以尝试如下:

this.cols = [
        {field: 'persona.dni', header: 'NIF'},
        {field: 'persona.nombre', header: 'Nombre'},
        {field: 'persona.apellido1', header: 'Apellido 1'},
        {field: 'persona.apellido2', header: 'Apellido 2'},
        {field: 'emailEmpresa', header: 'Email'}
    ];

<ng-template pTemplate="body" let-value>
    <tr>
        <td>{{value.persona.dni}}</td>
        <td>{{value.persona.nombre}}</td>
        <td>{{value.persona.apellido1}}</td>
        <td>{{value.persona.apellido2}}</td>
        <td>{{value.emailEmpresa}}</td>
    </tr>
</ng-template>

它将在最终的 CSV 文件中解析exportCSV()函数的嵌套[object Object]场景。


推荐阅读