#javascript #events #controller #odoo #extend
#язык JavaScript #Мероприятия #контроллер #одоо #расширять
Вопрос:
Я пытаюсь добавить какой-нибудь новый диспатчер событий в представление графика (нажмите на панель графика).
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'); }, }); });
Но _онбарклик так и не позвонил. Что случилось? Во время отладки GraphController я даже вижу, что у него действительно есть список событий, включающий события по умолчанию и мое добавленное событие. Также, если я добавлю диспетчер в rect.nv-панель с помощью jQuery в консоли отладки Chrome, как
$('rect.nv-bar').click(function(e){console.log('bar clicked');});
это тоже работает. Но что-то мешает ему работать так, как я цитировал выше. Может быть, что-то внутри nvd3? Как я могу это проверить?
Комментарии:
1. Вы добавили файл .js в ресурсы (должен быть в xml-файле)? И, возможно, вы можете добавить больше кода? Трудно исключить другие части вашего модуля, потому что ваш пример кода мне кажется прекрасным.
2. Да, и весь остальной код из того же .js выполняется так, как ожидалось.
3. Можете ли вы добавить XML-код, в котором
rect.nv-bar
используется ваш?4. xml не существует. Это часть библиотеки nvd3, интегрированной в представление графика Odoo по умолчанию.
5. Но в конце концов должен быть какой-то HTML. Как это выглядит?