繁体   English   中英

如何在元素重新渲染后将先前(重新渲染之前)值设置为 ag-grid Cell Renderer 输入元素?

[英]How to set previous(before re-rendering) value to ag-grid Cell Renderer input element after the element re-rendering?

我在 Angular 项目中有单元格渲染 class,该项目在 ag-grid 单元格内生成 html 输入模板。 水平滚动后,当输入单元格 go 离开屏幕时,ag-grid 重新渲染这些输入元素并且输入元素失去它们的值。 下面是我的 CellRenderer class:

export class TemplateRendererComponent implements ICellRendererAngularComp {
  template: TemplateRef<any>;
  templateContext: { $implicit: any, params: any };

  refresh(params: any): boolean {
    this.templateContext = {
      $implicit: params.data,
      params,
    };
    return true;
  }

  agInit(params: ICellRendererParams): void {
    this.template = params[ 'ngTemplate' ];
    this.refresh(params);
  }
}

如何使这个输入元素保持它们的值?

根据cellRenderer生命周期,一旦它不在视野范围内,它就会被销毁。

您可以实现ngOnDestroy()并在单元格渲染器被销毁之前访问最后一个已知值。

  ngOnDestroy() {
    // do your stuff here
  }

您可以将此值存储在 redux 存储或服务中。

然后可以在重新初始化渲染器时在agInit()中访问此值。

" suppressColumnVirtualisation: 设置为 true 以便网格不会虚拟化列。例如,如果您有 100 列,但由于滚动而只有 10 列可见,则始终呈现所有 100 列。默认值:false" 来源: https:/ /www.ag-grid.com/javascript-grid-properties/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM