Как вызвать событие gridready AG-Grid в функции обработчика щелчка - PullRequest
0 голосов
/ 04 декабря 2018

Я работаю над проектом в своей организации, где мне нужно реализовать ag-grid. Я знаю, что ag-grid имеет функцию события gridready, которая запускается изначально и устанавливает параметры со всеми свойствами grid-API.Мои данные строки постоянно меняются, что исходит от какого-то другого компонента, я добавил обработчик (функцию), где я хочу снова вызвать событие gridready, которое устанавливает мои данные строки с последними значениями.Проблема в том, что свойства gridapi будут инициализированы только в первый раз, я хочу получить доступ к этим свойствам (gridapi) в моем обработчике, который теперь не определен, как получить доступ к свойствам gridapi даже после инициализации сетки и потери области действия.У меня нет точного кода, я добавил несколько снимков кода, которые точно описывают мою ситуацию.

grid.component.ts

@Input() gridData

ngOnit() { 
}

handler() { 
want to call grid ready but params will be undefined ,how to set this gridapi properties.
gridready()
}

gridready(params) {
this.gridapi =params.api;
this.columnapi =params.clumnapi
this.gridapi.setRowData(this.gridData.rowData)
} 

1 Ответ

0 голосов
/ 15 февраля 2019

Согласно документации ag-Grid , Grid API (и api, и columnApi) будет доступен только после запуска события gridReady.

Вот альтернативный способ достиженияТо же самое, если я правильно понял вашу проблему.

Вы можете попробовать добавить локальную переменную isGridAPIReady в свой собственный grid.component.ts для отслеживания этого состояния.

Установите isGridAPIReady в значение true, когда срабатывает ag-grid GridReadyEvent.

И, в конце концов, установите новый rowData, используя сетку api:

//grid.component.ts

@Input()
rowData: any[];

ngOnChanges(changes: SimpleChanges): void {
    if (this.isGridAPIReady && changes['rowData']) {
      this.gridOptions.api.setRowData(this.rowData);
    }
}

Надеюсь, это поможет!

...