Как испускают событие в пределах NoRowsOverlayComponent?

Я хочу отобразить оверлейный контейнер с кнопкой. Когда кнопка нажата прибудете событие должно быть propagted к родительскому компоненту. В своем исследовании я обнаружил, что была возможность установить noRowsOverlayComponentParams, которой нет в моей версии (22.1.2). Я также не могу получить событие нажатия кнопки.

Есть ли обходной путь или настройка, которая решает мою проблему?

PS: компонент показан правильно, но я не могу получить событие щелчка.

Параметры сетки:

let options: any = {
      defaultColDef: {
        sortable: true,
        filter: true,
        resizable: true
      },
      suppressPaginationPanel: true,
      columnDefs: [...],
      paginationPageSize: 10,
      context: { componentParent: this},
      domLayout: 'normal',
      enableCellTextSelection: true,
      autoSizePadding: 2,
      noRowsOverlayComponent: 'myNoRowsComponent',
      frameworkComponents: {
        myNoRowsComponent: MyNoRowsComponent
      }
    };

MyNoRowsComponent.ts:

import { Component } from '@angular/core';
import { INoRowsOverlayAngularComp } from '@ag-grid-community/angular';
import { INoRowsOverlayParams, IAfterGuiAttachedParams } from '@ag-grid-enterprise/all-modules';

@Component({
  selector: 'app-my-no-rows',
  templateUrl: './my-no-rows.component.html',
  styleUrls: ['./my-no-rows.component.scss']
})
export class MyNoRowsComponent implements INoRowsOverlayAngularComp {

  params: any;

  agInit(params: INoRowsOverlayParams): void {
    this.params = params;

  }

  clickImport() {
    // this.params.context.componentParent.clickButton(); // <-- here I want to emit an event
  }

  afterGuiAttached?(params?: IAfterGuiAttachedParams): void { }

}

MyNoRowsComponent.html:

<button (click)="clickImport()">My Button</Button>

person JuNe    schedule 18.05.2020    source источник


Ответы (2)


Для тех, кто ищет эту проблему, я обнаружил, что события указателя отключены для наложений. просто добавьте это в свой класс кнопки:

pointer-events: all;
person Lordan    schedule 13.07.2021

Я бы создал общую службу, которая вводится как в родительский компонент, так и в компонент наложения.

Общая служба может предоставлять метод «уведомить», который затем вызывает объект Subject. Он также может предоставить 'getNotifications', который возвращает Subject как Observable.

Затем родительский компонент может подписаться на Observable, и покрышка может вызвать метод «уведомить», чтобы передавать данные родительского компонента.

person GreyBeardedGeek    schedule 18.05.2020
comment
Я знаю это, но проблема в том, что я даже не могу получить событие щелчка от кнопки (функция щелчка никогда не сработает - ›Я протестировал и отладил ее). - person JuNe; 19.05.2020
comment
@JuNe вы нашли путь? Я тоже пробую тот же сценарий - person Gilles Vercammen; 19.05.2021
comment
@GillesVercammen нет в настоящее время нет. На данный момент мы удалили кнопку из нашего приложения, потому что она не имеет для нас высокого приоритета. Возможно, мы попробуем позже с более новой версией. - person JuNe; 20.05.2021