我已经为许多输入元素附加了一个监听器,这些输入元素在执行时运行fun convert
- 方法,该方法检查是否有任何字段为空,然后根据结果显示按钮。我的问题是,有时请求需要很长时间或挂起。所以我有这样的假设:它是对checkButton();
- 方法的多次调用,这是原因。
如何将多个checkButton();
- 方法的调用合并为一个?有推荐的方法吗?
checkButton();
答案 0 :(得分:0)
不幸的是,我认为没有。 Vaadin在设计的简洁性方面非常棒,但它并非(并且从未如此)非常高效。 BE呼叫的数量是压倒性的(只需检查Chrome中的网络调试工具,看看我是多么正确)你可以做的是编写自己的容器/布局实现(对不起,如果我不准确,它&#39自从我在客户端使用验证逻辑触及Vaadin以来已经有一段时间了,并且附加了一个监听器,但是不必这样做是首先使用Vaadin的原因;)
另外,为什么不使用内置required
属性?这将为您处理大部分验证。特别是如果您将所有组件绑定到FieldGroup
,则可以通过单个fieldGroup.validate()
调用执行验证。如果需要其他验证器,您只需使用Component#addValidator()
编辑: 顺便说一下,这只是一个预感你有没有,或者你真的试过调试看看会发生什么?
EDIT2:
哦,我刚注意到,你在每次单一字段编辑后检查所有字段 - 为什么要这样做?而不是添加ValueChangeListener
尝试使用Validator
s,这是他们的目标!如果您希望它们实时工作,您可以使用Component#setImmediate