首页 文章

行扩展器模板在PrimeNG DataTable中不起作用

提问于
浏览
1

我试图第一次使用PrimeNG模板,我无法弄清楚“让东西”是如何工作的 . 我尝试了在其他SO问题中找到的各种组合,但它们都产生了同样的错误:

Cannot read property 'undefined' of undefined

在我的例子中,既未定义"row"也未定义"col" . 所以我想知道let-col和其他"let"如何在PrimeNG模板中工作,their site中有一个"let-car"的例子,但我似乎无法弄清"car"来自哪里?

这是我的HTML代码:

<p-dataTable [value]="devices" expandableRows="true">
  <p-column expander="true" styleClass="col-icon"></p-column>
  <template let-col let-row="rowData" pTemplate="rowexpansion">
    <div class="ui-grid ui-grid-responsive ui-fluid" style="font-size:16px;padding:2px">
      <div class="ui-grid-row">
        <div class="ui-grid-col-9">
          <div class="ui-grid ui-grid-responsive ui-grid-pad">
            <div class="ui-grid-row">
              <div class="ui-grid-col-2 label">Vin: </div>
              <div class="ui-grid-col-10">{{row[col.field]}}</div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </template>
  <p-column *ngFor="let header of columnHeaders" [field]="header.field" [header]="header.header"></p-column>
</p-dataTable>

1 回答

  • 0

    我认为你不能在行扩展模板中使用let-col,它应该绑定在body模板的列中

    <p-column field="field_name" header="field_header">
          <ng-template let-col let-item="rowData" let-i="rowIndex" pTemplate="body">
            {{item[col.field]}}         
          </ng-template>
        </p-column>
    

    然后你可以在rowexpansion模板中使用let-item,例如:

    <ng-template let-item  pTemplate="rowexpansion">
    {{item.field}}
    </ng-template>
    

相关问题