es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Odoo 12 amplía los eventos de la vista de gráficos con un clic en la barra del rectángulo.

Intento agregar un nuevo despachador de eventos a la vista del gráfico (haciendo clic en la barra del gráfico)

odoo.define('myaddon.upgrades', function (require) {
    "use strict";
    var GraphController = require('web.GraphController');
    GraphController.include({
        events: _.extend({}, GraphController.prototype.events, {
            'click rect.nv-bar': '_onBarClick',
        }),
        _onBarClick: function(event){
            console.log('bar clicked');
        },
    });
});

Pero el método _onBarClick no se llama nunca. ¿Qué sucede?
Durante la depuración de GraphController, incluso puedo ver que realmente tiene una lista de eventos que incluye sus eventos predeterminados y mi evento agregado también. Además, si agrego un despachador a rect.nv-bar con jQuery en la consola de depuración de Chrome, como

$('rect.nv-bar').click(function(e){console.log('bar clicked');});

funciona también.
Pero algo impide que se ejecute de la manera que cité anteriormente. ¿Quizás algo dentro de nvd3? ¿Cómo puedo probarlo?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Puede haber varias razones por las que _onBarClick no se esté llamando. Un problema común podría ser que la vista de Graph no se esté renderizando correctamente o que el elemento HTML con la clase “nv-bar” no esté presente en la vista.

    Para probar si el problema está con nvd3, podrías intentar agregar una declaración console.log simple a los eventos existentes en GraphController y ver si se activan correctamente. Si lo hacen, entonces el problema probablemente no está con nvd3.

    También podrías intentar agregar una declaración debugger dentro de la función _onBarClick y usar la consola de desarrollo del navegador para seguir el código y ver dónde está fallando.

    Otro posible problema podría estar relacionado con la versión de Odoo o del módulo web que se está utilizando. Asegúrate de que la versión que se está utilizando sea compatible con el código.

    Por último, es posible que haya un error tipográfico o algún otro error en alguna parte del código. Verifica nuevamente si hay errores de sintaxis o nombres de funciones mal escritos.

    En general, para solucionar el problema será necesario realizar un análisis exhaustivo del código y del entorno para identificar la causa raíz.

Comments are closed.