【问题标题】:How to call backend methods from JS independent from Vaadin View?如何从独立于 Vaadin View 的 JS 调用后端方法?
【发布时间】:2020-03-13 10:34:08
【问题描述】:

我有以下情况。 Javascript 在前端执行并对事件做出反应。如果捕获到事件,则会调用特定的后端方法。

我像下面这样初始化后端。在我的 Vaadin 14 视图之一初始化期间调用该方法。

window.init = function(element) {
    window.element = element;
    ...
}

查看:

public class TestView extends Div {
   public TestView() {
      ...
      UI.getCurrent().getPage().executeJs("init($0)", this);
   }
}

稍后在前端使用window.element.$server.onTestEvent(); 调用方法。

被调用的后端方法:

@ClientCallable
private void onTestEvent() {
    System.out.println("Test");
}

现在的问题:

我将视图传递为element

如果我更改视图,我传递的element 将被销毁,因此即使在前端捕获事件(在后端)也无法执行。

Vaadin 14 是否提供了一种在所有视图中“全局”存储对象的方法?我希望应用程序独立于我当前访问的视图对事件做出反应。

【问题讨论】:

标签: javascript java vaadin vaadin14


【解决方案1】:

最简单的解决方案是使用顶级主布局的元素(视图容器/MainView)而不是单个视图的元素。

【讨论】:

  • 感谢您的帮助。我正在使用 MainView 的元素,它可以工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-22
  • 2010-09-22
  • 2018-02-17
  • 1970-01-01
相关资源
最近更新 更多