java - Zk框架6.5.3使用E.L与composer绑定(bind)

标签 java model-view-controller data-binding zk

我正在使用这段代码。效果非常好。

<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/

相关文章:

java - 如何使用servlet/jsp显示数据库中的数据

java - 使用 SqlResultSetMapping 和 ConstructorResult 的类转换异常

java - 正在创建文件,但 FileConfiguration 未在其中放入文本

model-view-controller - 具体来说,什么属于模型、 View 和 Controller ?

php - 在不同的应用程序之间共享 CI 模型

android - MvvmCross Xamarin.Android FloatingActionButton 切换可见性

java - 日期计算器 : Tell what day of the week a certain date is

C#更新列表中的对象

c# - 绑定(bind) ListView 组头

c# - 枚举转换为字符串