我有一个结合了标签,一个文本框和一个错误的标签一Macrocomponent ...ZK MVVM验证消息自动绑定?
<mycomponent id="productname" caption="Product name" value="Apple XYZ" error=""/>
...现在我想使用绑定...
很显然,我可以写......
<mycomponent id="productname" caption="Product name" value="@bind(vm.productName)" error="@bind(vmsgs['productname'])"/>
(给定的,当然,一个validationMessages="@id('vmsgs')
以上地方 - 正确标注到位,所以这种结合工作正常)
...但当然,我必须为每个字段执行此操作,这会混乱我的.zul文件。那么,是否有机会以某种方式(甚至在java代码中)告诉组件使用组件ID将它自己绑定到vmsgs,而不必为每个字段都提供该组件?因此,这将有同样的效果......
<mycomponent id="productname" caption="Product name" value="@bind(vm.productName)"/>
..或者也许
<mycomponent id="productname" caption="Product name" value="@bind(vm.productName)" bindError="true"/>
当然,组件应该留在非MVVM环境中使用,因此增加固定绑定可能是出。例如,如果我们以某种方式绑定并自动添加我们自己的绑定,那么有什么机会找到Java?
您能发布java验证部分吗?我的想法是从ValidationContex.getBindContext()。getComponent()获取组件的id,并通过组件id管理错误。当然,它只适用于每个组件都有设置的ID。 – barracus
有错误作为属性的宏组件有一个id,在那里没有问题。子成员也有,但当然总是一样的。验证部分至今还没什么特别的,只是一些简单的AbstractValidators检查和添加消息。 –