Сообщение #1
05 февраля 2018, 16:14
|
Выполнение JavaScript в BackEnd после загрузки формы
Используемая в Odoo технология создания Backend формы исключает возможность выполнение JavaScript обычными способами, как это осуществляется в FrontEnd:$(document).ready vs $(window).load vs window.onload, т.к. данные события возникают раньше создания формы и все элементы формы создаются динамически после описанных событий. Разработчики Odoo предусмотрели возможность перехватить событие, указывающие на завершение загрузки шаблона или элемента формы:
Зачем это надо, часть сторонних API часто требуют загрузки своих скриптов только после успешной загрузки в браузер необходимых элементов формы. В частности — API от google maps.
var FormRenderer = require('web.FormRenderer');
FormRenderer.include({
events: { /// при необходимости вешаем на элемент формы обработчик нажатия
'click .мой элемент': 'my_click',
},
my_click: function() {
},
_renderView: function () {
var self = this;
return this._super().then(function () {
if (self.state.model=='ваша модель'){
Выполняем java скрипт;
}
});
},
});
Зачем это надо, часть сторонних API часто требуют загрузки своих скриптов только после успешной загрузки в браузер необходимых элементов формы. В частности — API от google maps.