JS回调到Vaadin组件

JS callback to Vaadin component

我有一个 JS 组件 (SigPlot),我需要从中读取点击值。我在 VerticalLayout 中实例化了 SigPlot,我还在其中实例化了一个 DIV 以传递给 SigPlot 构造函数。我不确定这是否是一种有效的方法,但它确实有效。 现在我需要阅读 CLICKS,但我无法找到正确的方法来执行此操作。谁能传授一些至理名言?

在我的 VIEW 构造函数中,它使用 addAttachListener 来启动我的 JS 代码。

div.addAttachListener(e->{
    e.getUI().getPage().executeJs("myInit([=10=])",div);
});

如何注册点击监听器?

此致

只要它只是一个常规的 DOM 事件侦听器,那么像这样的东西应该可以工作:

div.getElement().addEventListener("click", event -> Notification.show("Clicked"));

如果您需要在更精细的级别上做一些事情,那么您可能希望将回调公开为 @ClientCallable,然后使用 executeJs 到 运行 一些简短的 JavaScript 片段来设置委托给这些方法的侦听器。