Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

529
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda