ZK使用@load的可见标记

时间:2013-07-15 08:38:11

标签: java zk

我正在使用ZK.6.5.2和ZK Bind来实现MVVM模式。 在我的ZK页面中,我有

<h:label>Name:</h:label>        
<label value="@load(vm.person.Name)" />
<h:br />

只有当vm.person.Name不为空时我才需要显示上面的3行,但是因为在运行时填充了@load值,所以在编写时进行评估,为了实现上述目的,我有

<h:label visible="@load(not empty vm.person.Name)"/>

但我必须在每个组件上加入相同的条件。是否有更清洁的方法来实现同样的目标?

任何帮助将不胜感激。 谢谢。 约翰

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

<zk if="@load(not empty vm.person.Name)">

<h:label>Name:</h:label>        
<label value="@load(vm.person.Name)" />
<h:br />

</zk>

或者如果您使用上面代码中的“vm.visible”

<zk if="@load(vm.visible)">

<h:label>Name:</h:label>        
<label value="@load(vm.person.Name)" />
<h:br />

</zk>

答案 1 :(得分:0)

您可以像这样向ViewModel添加属性:

@DependsOn("person")
public boolean isVisible() {
  return true;  // your condition here  
}

然后使用

<h:label visible="@load(vm.visible)"/>