Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

525
Vistas
La propiedad 'getFrameworkComponentInstance' no existe en el tipo 'ICellRendererComp'

Estoy tratando de obtener la instancia del procesador de celdas (componente angular) en el controlador de eventos de fila seleccionada:

 onRowSelected($event) { var selectedRow = this.gridApi.getDisplayedRowAtIndex($event.rowIndex); var params = { columns: ['added'], rowNodes: [selectedRow]}; var instances = this.gridApi.getCellRendererInstances(params); if (instances.length > 0) { var wrapperInstance = instances[0].getFrameworkComponentInstance(); } }

Desafortunadamente, aparece el error durante la compilación de la aplicación angular (ts):

La propiedad 'getFrameworkComponentInstance' no existe en el tipo 'ICellRendererComp'

La implementación proviene de la documentación oficial en https://www.ag-grid.com/javascript-grid-cell-rendering-components/ (busque Acceso a instancias de renderizador de celdas).

Aquí hay un posible método de fábrica que define getFrameworkComponentInstance público.

Es una situación inesperada porque cuando depuro este método puedo obtener el renderizador con el método getFrameworkComponentInstance en instances[0] .

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Por lo que vi en las interfaces de ICellRenderer , la interfaz ICellRendererComp no tiene la función getFrameworkComponentInstance.

Interfaces de ICellRendererComp

He trabajado mucho con ag-grid-angular y descubrí que, a veces, las interfaces no son relevantes para lo que realmente hay en el objeto (funciones/variables faltantes).

El problema se debe principalmente a que tslint no confía en el método ya que no está en la interfaz. Para solucionarlo, creé mi propia interfaz personalizada que amplía ICellRendererComp pero con la función.

ingrese la descripción de la imagen aquí

De esa manera, cuando intente llamar a su instancia, puede enviarla a su interfaz. He probado muchas cosas y solo esta me ha funcionado.

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo Denunciar

0

Estoy de acuerdo con las razones de la respuesta anterior, sin embargo, un enfoque más corto me ha ahorrado tiempo.
En lugar de crear una interfaz personalizada, lo siguiente me ha funcionado:

 if (instances.length > 0) { var cellRenderer: any = instances[0]; var wrapperInstance = cellRenderer.getFrameworkComponentInstance(); }
over 4 years ago · Santiago Trujillo Denunciar

0

Desde v27 de AG Grid

Ya no necesita usar el método getFrameworkComponentInstance() , ya que su componente Angular se devolverá directamente desde getCellRendererInstances() . De modo que puede recorrer los componentes y llamar a sus métodos directamente.

 const instances = this.gridApi.getCellRendererInstances(params) as MyComponent[]; instances.forEach((instance) => { instance.myComponentFunction(); });

Consulte la documentación actualizada aquí: Procesador de celdas de componentes

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda