我正在使用这段代码。效果非常好。
<window id="win" xmlns:w="http://www.zkoss.org/2005/zk/client" apply='MyComposer'>
<textbox value="@{$composer.student.name}"/>
但我想使用这样的东西
<cell width='$composer.fullWidth?"70%":"50%"'>
在我的 Composer 中,我有一个 boolean fullWidth 和正确的 getter,但我无法在 Composer 中引用它。我已经尝试了很多,但似乎没有任何效果。
我已经尝试过
<cell width='@{$composer.fullWidth}?"70%":"50%"'>
<cell width='{$composer.fullWidth}?"70%":"50%"'>
<cell width='@{composer.fullWidth}?"70%":"50%"'>
另一个问题:如果我有这样的代码:
<textbox id='test' if='expression'/>
如何使用 Java 代码来使用 if ?难道不可能吗?
类似于:
test.setIf(boolean???????)
最佳答案
首先,请使用正确的MVVM。
@{} 是从 zk6.0 到创建 MVVM 的一个有 bug 的版本。
您甚至无法在 ZK 文档中找到它!
使用真正的 MVVM:
@load(vm.fullwidth?'70%':'50%')
第二个问题:
if 属性是一个特殊的属性。此处仅静态绑定(bind)有效,因为如果其计算结果为 false,则该组件将不会在 DOM 中呈现。
因此,要么使用visible,要么在javacode中使用额外的检查是否可以将此组件添加到DOM。
关于java - Zk框架6.5.3使用E.L与composer绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47350225/