2017-02-21 76 views
1

我想第一次使用PrimeNG模板,我无法弄清楚“let-something”是如何工作的。我想我在其他的做题发现的各种组合,但所有的人都产生具有相同的错误:行扩展器模板不能在PrimeNG DataTable中工作

Cannot read property 'undefined' of undefined 

在我而言既不是“行”,也不是“山口”的定义。 所以我想知道let-col和其他“让”在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> 

回答

0

我认为你不能在rowexpansion模板使用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> 

然后你可以使用let-item里面的rowexpansion模板,如:

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

它在'body'模板中工作正常,但我也需要sa我在另一个地方的'rowexpansion'模板的功能,它需要是'rowexpansions'模板,而不是'body'。 –

+0

我只需编辑answare,添加let-item选项,如果它可以解决您的问题 –