Перенос Page.getCurrent().getJavaScript().addFunction в Vaadin Flow

У меня есть следующий код Vaadin 8:

Page.getCurrent().getJavaScript().addFunction("getDocument", args -> {
    ...
    //java rest call
    ...
});

getDocument вызывается в коде javascript.

window.documentSign = function(signerUrl,procedure) {
    ....
    getDocument(signerRequest.responseText,procedure,messageId);
    ....
}

Как я могу перенести этот фрагмент кода в Vaadin Flow 14?

Заранее спасибо.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
51
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Просто используйте:

UI.getCurrent().getPage().executeJs("getDocument", <args as varargs>)

Спасибо за быстрый ответ. Я думаю, что вопрос может быть не ясен. Он обновлен.

aha 09.01.2023 17:11
Ответ принят как подходящий

addFunction в Vaadin 8 предоставляет JavaScript возможность отправлять данные обратно на сервер.

Я предполагаю, что это не одноразовый случай, который можно обработать, вернув значение (или обещание) через executeJs. Я также предполагаю, что этот случай не связан с классом компонента, где вы можете определить метод @ClientCallable в Java и получить к нему доступ из JS через element.$server.

Остается запустить пользовательское событие DOM в элементе <body> и прослушивать это событие в элементе UI через Java.

Запуск события из JS:

document.body.dispatchEvent(new CustomEvent('event-name', { detail: 'String from JS' }));

Прослушивание события в Java:

ui.getElement().addEventListener("event-name", event -> {
  System.out.println(event.getEventData().getString("event.detail"));
}).addEventData("event.detail");

Другие вопросы по теме