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

187
Vistas
Cómo llamar a un método vue desde dentro del objeto xAxis.labels.formatter() highcharts

Entonces, lo que estoy tratando de lograr es que debe haber una casilla de verificación antes del valor en el eje x y debe llamar a mi método test() vue cuando se cambia la casilla de verificación al hacer clic en ella. En este momento está llamando a test() cuando se llama al método buildChart().

 buildChart() { const context = this; return { chart: { height: 500, type: 'columnrange', inverted: true, spacingLeft: 10, spacingRight: 10, }, xAxis: { showEmpty: false, title: null, type: 'category', labels: { useHTML: true, formatter() { // This is where i am rendering the checkbox, would like it to trigger my vue function which is within the current vue context. return `<input type='checkbox' onchange='${context.test(this.value)}'> ${this.value}`; }, }, }, }; } test(value) { console.log(value); }
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Esto no funcionará, el valor devuelto por una función de formatter se trata como una cadena.

Como solución, puede almacenar el valor de una etiqueta en un atributo data-* y agregar un evento de change después de crear el gráfico.

 export default { methods: { test(value) { console.log(value); } }, data() { const context = this; return { chartOptions: { chart: { events: { load: function() { const labelGroup = this.xAxis[0].labelGroup; const checkboxes = labelGroup.div.getElementsByTagName('input'); for (const checkbox of checkboxes) { checkbox.addEventListener('change', function(e){ context.test(this.dataset.value); }) } } } }, xAxis: { showEmpty: false, title: null, type: 'category', labels: { useHTML: true, formatter() { return `<input type='checkbox' data-value=${this.value}> ${this.value}`; } } } } }; } };

Demostración en vivo: https://codesandbox.io/s/highcharts-vue-demo-fork-j4ty16?file=/src/components/Chart.vue

about 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