使用 EL-Expression 保存 ZK MVVM 活页夹
ZK MVVM binder save with EL-Expression
如何使用 zk MVVM 做到这一点
我要存一颗豆子
但有条件
如果类型是个人而不是保存到个人,否则到公司
<textbox value="@save(vm.personal ? vm.masterCifPersonal.cifId : vm.masterCifCompany.cifId)" width="100px" maxlength="10"/>
但是当binder存入bean时,出现这个异常
Illegal Syntax for Set Operation
我的建议是修改您的代码并使用临时变量:
<textbox value="@save(vm.temp)" width="100px" maxlength="10"/>
并将您的setter修改为
void setTemp(Long temp) {
if(personal) {
masterCifPersonal.cifId = temp;
} else {
masterCifCompany.cifId = temp;
}
}
另一种解决方案可能是:
ZK 8 及更高版本:
<if test="@load(vm.personal)">
<textbox value="@save(vm.masterCifPersonal.cifId)"/>
</if>
<if test="@load(not vm.personal)">
<textbox value="@save(vm.masterCifCompany.cifId)"/>
</if>
ZK 6.5 更高:
<textbox value="@save(vm.masterCifPersonal.cifId)" visible="="@load(vm.personal)"/>
<textbox value="@save(vm.masterCifCompany.cifId)" visible="="@load(not vm.personal)"/>
区别:
if 标签将 不 将另一个标签渲染到 dom 而使用 visible 属性将其渲染到 dom.
如果个人不是动态的,您可以使用 Textbox
的 if
属性,但用法是:if="${vm.personal}
因为绑定不起作用
像这样,文本框也不会呈现到 DOM.
如何使用 zk MVVM 做到这一点
我要存一颗豆子 但有条件 如果类型是个人而不是保存到个人,否则到公司
<textbox value="@save(vm.personal ? vm.masterCifPersonal.cifId : vm.masterCifCompany.cifId)" width="100px" maxlength="10"/>
但是当binder存入bean时,出现这个异常
Illegal Syntax for Set Operation
我的建议是修改您的代码并使用临时变量:
<textbox value="@save(vm.temp)" width="100px" maxlength="10"/>
并将您的setter修改为
void setTemp(Long temp) {
if(personal) {
masterCifPersonal.cifId = temp;
} else {
masterCifCompany.cifId = temp;
}
}
另一种解决方案可能是:
ZK 8 及更高版本:
<if test="@load(vm.personal)">
<textbox value="@save(vm.masterCifPersonal.cifId)"/>
</if>
<if test="@load(not vm.personal)">
<textbox value="@save(vm.masterCifCompany.cifId)"/>
</if>
ZK 6.5 更高:
<textbox value="@save(vm.masterCifPersonal.cifId)" visible="="@load(vm.personal)"/>
<textbox value="@save(vm.masterCifCompany.cifId)" visible="="@load(not vm.personal)"/>
区别:
if 标签将 不 将另一个标签渲染到 dom 而使用 visible 属性将其渲染到 dom.
如果个人不是动态的,您可以使用 Textbox
的 if
属性,但用法是:if="${vm.personal}
因为绑定不起作用
像这样,文本框也不会呈现到 DOM.