Вы правы, нет официального способа сделать это.Обходным путем может быть обнаружение, когда меню закрывается самостоятельно.Ag-grid предоставляет вам обратный вызов postProcessPopup
(см. здесь ), который предоставляет параметр типа PostProcessPopupParams
;он содержит всплывающий элемент меню столбца, который отображается, чтобы вы могли проверить, когда меню больше не отображается.
Создание переменной для хранения элемента columnMenu в:
columnMenu: any = null;
Сохранение columnMenu в этой переменной с использованием события ag-grid postProcessPopup
:
<ag-grid-angular [postProcessPopup]="postProcessPopup"></ag-grid-angular>
this.postProcessPopup = function(params) {
this.columnMenu = params.ePopup;
}.bind(this);
Затем создайте прослушиватель, чтобы определить, когда меню столбцов больше не видно в домене:
this.renderer.listen('window', 'click',(e:Event)=>{
console.log(this.columnMenu)
const columnMenuIsInDom = document.body.contains(this.columnMenu);
if (!columnMenuIsInDom && this.columnMenu != null)
{
this.columnMenu = null;
}
});
Это немного хакерский и обходной путь, но я не могу придумать лучшего способа на данный момент.
Взгляните на этот Плункер для иллюстрации.