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

408
Vistas
Tabulador 5: ¿Ya no son posibles los menús contextuales vinculados personalizados?

¡Hemos usado Tabulator durante algunos años y es un gran producto! Ahora pasamos a usar Angular v13 y cambiamos al nuevo Tabulator 5.x

Previamente, en la definición de la columna de la tabla, hemos creado un menú contextual personalizado usando lo siguiente:

 contextMenu: this.TableRowClicked.bind(this),

Con la definición de la función luciendo así:

 public TableRowClicked(data: any, e: Event): void {

Tenga en cuenta que solo usamos el menú contextual del contextMenu para activar la creación de nuestro propio sistema de menú contextual, luciendo, por ejemplo, así:

Menú contextual personalizado

Con el nuevo Tabulator 5.x, ¿esto parece haber cambiado? ¿Parece que debemos devolver una serie de elementos del menú ahora? Es posible que no haya entendido bien, pero parece que ya no es posible usar esto como un desencadenante para llamar a la creación de su propio menú contextual. ¿O estoy malinterpretando los tipos de entrada y retorno de la nueva función de menú contextual? Vi una nota sobre devolver una matriz vacía ([]) si no desea crear elementos de menú devueltos personalizados, sin embargo, el error pegado a continuación aún permanece. Ahora tengo la función definida así para el Tabulador 5, que requiere que devuelva una matriz:

 public TableRowClicked(cell: Tabulator.MenuObject<Tabulator.CellComponent>, e: UIEvent): (Tabulator.MenuSeparator | Tabulator.MenuObject<Tabulator.CellComponent>)[] {

El contextMenu en la definición de columna del tabulador da el siguiente error:

 Type '(cell: MenuObject<CellComponent>, e: UIEvent) => (MenuObject<CellComponent> | MenuSeparator)[]' is missing the following properties from type '(MenuObject<CellComponent> | MenuSeparator)[]': pop, push, concat, join, and 27 more.ts(2740) index.d.ts(1412, 9): The expected type comes from property `contextMenu` which is declared here on type `ColumnDefinition`

¿Puede alguien arrojar algo de luz sobre la nueva forma de hacer esto en Tabulator 5 o lo que me estoy perdiendo y haciendo mal?

Cualquier ayuda sería muy apreciada, ya que actualmente esto impide el cambio al Tabulador 5 desde el Tabulador 4.9.3.

Gracias,

Miguel

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Al observar el error, parece que las escrituras de TypeScript que está utilizando pueden estar desactualizadas y no esperar la función allí.

Los Typings no son parte de la biblioteca Tabulator, la biblioteca en sí funciona como se esperaba.

Lo que diría es que si está iniciando su propio menú contextual, entonces no hay necesidad de usar la opción contextMenu , que está diseñada solo para iniciar el sistema incorporado.

Le recomendaría que use el evento cellContext para buscar un clic derecho en la celda y luego active su menú personalizado.

Esto se puede hacer por columna en la definición de columna:

 {title:"Name", field:"name", cellContext:function(e, cell){ //e - the click event object //cell - cell component }, }

o suscribiéndote al evento en toda la mesa:

 table.on("cellContext", function(e, cell){ //e - the click event object //cell - cell component });
about 4 years ago · Juan Pablo Isaza 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