【问题标题】:Row Expander template does not work in PrimeNG DataTable行扩展器模板在 PrimeNG 数据表中不起作用
【发布时间】:2017-02-21 08:21:35
【问题描述】:

我第一次尝试使用 PrimeNG 模板,但我不知道“let-something”是如何工作的。我尝试了在其他 SO 问题中找到的各种组合,但它们都产生了相同的错误:

Cannot read property 'undefined' of undefined

在我的例子中,“row”和“col”都没有定义。 所以我想知道在 PrimeNG 模板中 let-col 和其他 "let" 是如何工作的,在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>

【问题讨论】:

    标签: angular primeng


    【解决方案1】:

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

        <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>
    

    【讨论】:

    • 它在body 模板中工作正常,但我还需要在另一个地方为我的rowexpansion 模板提供相同的功能,它需要是rowexpansions 模板,而不是body 一个.
    • 我只是编辑了答案,如果可以解决您的问题,请添加 let-item 选项
    猜你喜欢
    • 2017-09-02
    • 2012-01-31
    • 1970-01-01
    • 2023-03-25
    • 2018-06-03
    • 2011-04-10
    • 1970-01-01
    • 2022-11-18
    • 2017-08-31
    相关资源
    最近更新 更多