Angular "let-col" 没有传递所有属性

Angular "let-col" is not passing all the properties

我正在尝试传递额外的字段来帮助处理。这就是我定义列数组的方式:

this.columns = [
        {field: 'vin', header: 'Vin', isMultiRowColumn: true },
        {field: 'year', header: 'Year', isMultiRowColumn: false},
        {field: 'brand', header: 'Brand', isMultiRowColumn: false},
        {field: 'color', header: 'Color', isMultiRowColumn: false}
    ];

现在,当我 运行 下面的代码时:

<p-dataTable [value]="testData">
  <p-column *ngFor="let col of columns" [field]="col.field" [header]="col.header">
    <ng-template let-col let-dt="rowData" pTemplate="body">
     <span>{{dt[col.field] + '-' + col.isMultiRowColumn }}</span>
    </ng-template>
  </p-column>
</p-dataTable>

我明白了:

dsad231ff-undefined 2012-undefined  VW-undefined    Orange-undefined

有什么原因 isMultiRowColumn 没有通过吗?

感谢您的帮助

使用 let-col 上下文 属性 $implicit 在绑定模板中作为 col 可用。并且您在 ngfor 中选择了与 let-col 相同的 col var,当您定义 let-col 时,它会创建一个新变量,该变量引用具有字段 属性 的 table col 和它没有引用 ngFor 中定义的 col 变量,它有字段 属性 但没有 isMultiRowColumn 属性,因此请尝试更改 ngfor 变量从 colcolumn:

同时检查:

<p-dataTable [value]="testData">
  <p-column *ngFor="let column of columns" [field]="column.field" [header]="column.header">
    <ng-template let-col let-dt="rowData" pTemplate="body">
     <span>{{dt[column.field] + '-' + column.isMultiRowColumn }}</span>
    </ng-template>
  </p-column>
</p-dataTable>

查看 DEMO 并单击按钮并检查浏览器中的日志以查看 col 的真实情况。