0

我需要扩展 DxDataGridComponent,但我无法理解它是如何工作的。

首先,我将扩展 DxDataGridComponent:

import { Component } from '@angular/core';
import { DxDataGridComponent } from 'devextreme-angular/ui/data-grid';

@Component({
  selector: 'app-data-grid',
  templateUrl: './data-grid.component.html',
  styleUrls: ['./data-grid.component.scss']
})

export class DataGridComponent extends DxDataGridComponent {
  constructor(..) {
    super(..);
  }
}

现在我被卡住了,因为这个组件需要这些参数:

constructor(elementRef: ElementRef, ngZone: NgZone, templateHost: DxTemplateHost, _watcherHelper: WatcherHelper, _idh: IterableDifferHelper, optionHost: NestedOptionHost, transferState: TransferState, platformId: any);

我应该怎么办?扩展此组件的正确方法是什么?

我这样做是因为我必须添加一些自定义@Input,但我还想要 DxDataGridComponent 的所有默认参数。

有人可以帮助我吗?

4

1 回答 1

0

好吧,他们的支持中心似乎已经对此进行了公开讨论:

https://supportcenter.devexpress.com/Ticket/Details/T278278/is-there-a-way-to-extend-devextreme-sontrols

在这里你可以在 Plunker 中找到一个演示:

http://embed.plnkr.co/rCAGIkRdnJaXKiZqrA7L/

基本上,您的构造函数应该注入所有需要的参数,这些参数稍后应该传递给super()调用,例如:

constructor(
    private eRef: ElementRef, 
    ngZone: NgZone, 
    private templateHost: DxTemplateHost, 
    private _watcherHelper: WatcherHelper
)
{
    super(eRef, ngZone, templateHost, _watcherHelper);
}
于 2020-02-25T15:56:44.147 回答