Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

400
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!