Как установить предыдущее (перед повторным рендерингом) значение входному элементу ag-grid Cell Renderer после повторного рендеринга элемента? - PullRequest
0 голосов
/ 09 мая 2020

У меня есть класс рендеринга ячеек в проекте Angular, который генерирует html шаблоны ввода внутри ячеек ag-grid. После горизонтальной прокрутки, поскольку ячейки ввода go за пределами экрана, ag-grid повторно отображает эти элементы ввода, и элементы ввода теряют свои значения. Ниже мой класс CellRenderer:

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);
  }
}

Как заставить эти элементы ввода сохранять свои значения?

Ответы [ 2 ]

0 голосов
/ 10 мая 2020

"suppressColumnVirtualisation: установите значение true, чтобы сетка не виртуализировала столбцы. Например, если у вас есть 100 столбцов, но только 10 видимых из-за прокрутки, все 100 будут отображаться всегда. По умолчанию: false" Источник: https://www.ag-grid.com/javascript-grid-properties/

0 голосов
/ 10 мая 2020

Согласно жизненному циклу cellRenderer, он уничтожается, как только исчезает из поля зрения.

Вы можете реализовать ngOnDestroy() и получить доступ к последнему известному значению до того, как средство визуализации ячейки будет уничтожено.

  ngOnDestroy() {
    // do your stuff here
  }

Вы можете сохранить это значение в хранилище redux или в сервисе.

Затем к этому значению можно будет получить доступ в agInit() при повторной инициализации средства визуализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...