我使用Kendo Grid来显示来自过滤请求的数据。我的模板只重复显示相同的行(第一行数据),而不是正确地迭代数据。正确的数据行数垂直显示,但每次都是相同的数据,因为它没有正确迭代。 (我尝试将* ngFor放在ng-template
的kendoGridCellTemplate
中。)当我玩我的代码时,例如,如果我把我的* ngFor放在ngContainer
中,我可以看到代码可以迭代但是水平创建一个完整的列每次X个时间。
我究竟做错了什么?我该如何解决这个问题?
示例>> where myRequests = Request [] >>
<kendo-grid [data]="myRequests">
<kendo-grid-column field="name" title="Name" width="100px">
<ng-template kendoGridHeaderTemplate>
<div>Name</div>
</ng-template>
<div *ngFor="let request of myRequests>
<ng-template kendoGridCellTemplate field="name" let-dataItem>
{{ name(request) }}
</ng-template>
</div>
</kendo-grid-column>
</kendo-grid>
从您提供的示例中,您只需为我们的数据源的field="name"
声明一个kendo网格列。然后迭代你的myRequests
以生成多个模板。但是你也将myRequests
作为DataSource传递给Grid。
我相信kendo-grid-column
只接受一个kendoGridCellTemplate
内容的孩子。
试试这个
<kendo-grid [data]="myRequests">
<kendo-grid-column field="name" title="Name" width="100px">
<ng-template kendoGridHeaderTemplate>
<div>Name</div>
</ng-template>
<ng-template kendoGridCellTemplate field="name" let-dataItem>
<!-- Define your template here -->
<!-- Your intent of looping and calling a function is unclear from the question -->
<!-- Kendo will iterate over `myRequests` and pass each request into the `dataItem` template variable -->
{{ name(dataItem) }}
</ng-template>
</kendo-grid-column>
</kendo-grid>