...

Работа с компонентами ELMA внутри JS-кода

Тема в разделе "Вопросы по платформе", создана пользователем iliya.fertikov, 10 июл 2023.

  1. iliya.fertikov

    iliya.fertikov Участник

    Добрый день! При работе с JS-скриптами и синтаксисом JSX возник вопрос: а можно ли каким-то образом обрабатывать виджеты из контекста приложения и вызывать клиентские скрипты прямо из JS-файла, подключенного в качестве модуля, а не только внутри виджета код (HTML)?
    Например такой:

    <%= UI.widget.groupbox({title: 'Заголовок'}, panelContent) %>

    <% $template panelContent %>
    <div> Здесь отобразим содержимое панели </div>
    <% $endtemplate %>

    Или такой код:


    <button onclick="<%= Scripts%>.OpenPopup()">Открыть</button>
  2. miliakova

    miliakova Техническая поддержка

    Добрый день!
    Расскажите, пожалуйста, подробнее, какая задача перед Вами стоит.
    Подключить js-файл в качестве модуля можно в виджет код или в клиентский сценарий, подробно описано здесь: https://community.elma365.com/ru/threads/137/
    Например, мы подключим js-модуль в клиентский сценарий. Вызовем функцию этого стороннего кода, передав в нее функцию из сценария.
    Сторонний код вызовет клиентский сценарий. Но после мы снова возращаемся в контекст нашего интерфейса.
    В моем примере вызов клиентского сценария сторонним кодом не оправдан - сторонний код не отдает ничего того, что нельзя выполнить в сценарии напрямую. Обычно, сторонние js-файлы подключаются в дополнение к имеющемуся функционалу. Передать нужные переменные, функции в сторонний код мы можем. Методов для извлечения виджета контекста приложения для передачи их на сторону на данный момент нет. Наш виджет - это элемент интерфейса Элмы, заряженный системным функционалом. Вы можете забрать элементы верстки виджетов из DevTools, видоизменить стили и вернуть такую верстку.

    Вложения: