我有以下情况。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是否提供一种在所有视图上“全局”存储对象的方法?我希望应用程序对事件做出反应,而与当前访问的视图无关。
问题来源:Stack Overflow
最简单的解决方案是使用顶级主布局的元素(视图容器/ MainView),而不是单个视图的元素。
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。