Генерация шаблонов программно в Kendo для угловой сетки

Учитывая этот массив столбцов в родительском компоненте:

columns = [
      { field: 'field1', title: 'Title 1', width: '100px' },
      { field: 'field2', title: 'Title 2', width: '200px' },
      { field: 'field3', title: 'Title 3' }
  ];

Я могу построить кендо для угловой сетки динамически в my-table составная часть:

@Component({
  selector: 'my-table',
  template: `
          <kendo-grid #grid="kendoGrid" [data]="data">
              <kendo-grid-column
                  *ngFor="let column of columns"
                     field="{{column.field}}"
                     title="{{column.title}}"
                     width="{{column.width}}"
              </kendo-grid-column>
          </kendo-grid>
`
})
export class MyTableComponent {
     @Input() data: any[] = [];
     @Input() columns: any[] = [];
}

Что мне нужно, это программно добавить в таблицу столбец, содержащий кнопку, где кнопка должна выполнять функцию в родительском компоненте.

Это пример разметки, которая должна быть представлена MyTableComponent:

 <kendo-grid-column>
      <ng-template kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
           <button kendoButton (click)="edit(dataItem,rowIndex)" [icon]="'edit'"></button>
       </ng-template>
 </kendo-grid-column>

MyTableComponent должен получить от своего родителя информацию в columns массив, что-то вроде этого:

columns: [ { isButton: true, buttonLabel: 'Edit', callbackFunc: parentFunc } ];

Можно ли сгенерировать шаблон программно в компоненте таблицы?

1 ответ

Решение

Сценарий кажется возможным. Вы должны добавить шаблон ячейки внутри столбца и использовать ngIf, чтобы отобразить его только для столбцов кнопки:

<ng-template *ngIf="column.isButton" kendoGridCellTemplate let-dataItem let-rowIndex="rowIndex">
    <button kendoButton (click)="column.callbackFunc(dataItem,rowIndex)" [icon]="column.icon">{{ column.buttonLabel }}</button>
</ng-template>

https://stackblitz.com/edit/angular-bzuy99?file=app/app.component.ts

Другие вопросы по тегам