Angular 6 + Kendo UI - данные сетки отображаются некорректно - PullRequest
0 голосов
/ 08 марта 2019

Я использую сетку Kendo для отображения данных отфильтрованных запросов.Мой шаблон отображает только одну и ту же строку (первую строку данных) несколько раз вместо правильной итерации данных.Правильный номер строки данных отображается вертикально, но каждый раз это одни и те же данные, поскольку они не повторяются должным образом.(Я также попытался поместить * ngFor в ng-template из kendoGridCellTemplate.) Когда я, например, играю со своим кодом, если я помещаю * ngFor в ngContainer, я вижу, что код может бытьповторяется, но по горизонтали создает полный столбец каждый раз по числу X.

Что я делаю не так?Как мне решить эту проблему?

Пример >>, где myRequests = Запрос [] >>

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

1 Ответ

0 голосов
/ 08 марта 2019

Из приведенного вами примера вы объявляете только ОДИН столбец сетки кендо для field="name" нашего источника данных. Затем выполните итерации по вашему myRequests для создания нескольких шаблонов. Но вы также передаете myRequests как источник данных в сетку.

Я считаю, 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>
...