Всем доброго времени суток. Версия 7.10.
К примеру, есть некоторый контрол, наследующийся от Terrasoft.Component. Как я понимаю, сам процесс генерации непосредственно HTML-кода происходит на этом этапе:
renderComponent: function(buffer, renderData) { var self = renderData.self; if (self.html) { Ext.DomHelper.generateMarkup(self.html, buffer); return; } var tpl = self.getTpl(); var tplData = self.getTplData(); tpl = self.processTemplate(tpl, tplData); var template = new Ext.XTemplate(tpl); self.prepareTpl(template, tplData); template.applyOut(tplData, buffer); },
(взято отсюда: https://academy.terrasoft.ru/jscoresdk/#!/api/Terrasoft.controls.Compon…)
Собственно, вопрос такой: можно ли сюда вставить какой-либо запрос, типа getEntityCollection? Задача по сути - надо внести некоторые изменения в tplData, получить данные для которых можно только запросом.
Если я делаю запрос после строки var tplData = self.getTplData(); а последующее - переношу внутри функции-обработчика результата запроса, то в консоль вываливается ошибка: Uncaught Terrasoft.ItemNotFoundException: Элемент не создан
Внутрь самой getTplData, понятно, запрос тоже не добавить - там функция возвращает return.
Можно ли вообще реализовать такую штуку с запросом?
Нравится
Добрый день. Да, вы можете воспользоваться esq в данном методе. Однако в момент вызова функции обратного вызова часть внутренних переменных контрола будет уже недоступна. Вам стоит смотреть в сторону реализации взаимодействия контрола с моделью, как это реализовано в базовых контролах системы. Пример реализации вы можете посмотреть в SDK https://academy.terrasoft.ru/sites/default/files/documents/docs/technic… стр. 672.
Терещук Сергей,
Сергей, доброго дня.
Спасибо за ответ, хотя вопрос в общем-то уже решён.. но появился следующий: можно ли в контролах использовать миксины (подключить другой контрол с доступом к его функциям)? Есть пара контролов, в которых используются похожие функции, хотелось бы вынести их отдельно, чтобы не плодить копипасту.
Может тоже есть, где посмотреть примеры?