I'm trying to omit a table row when a boolean condition is false:
<zk if="${vm.visible}">
<n:tr>
<n:td>
<label value="Should be visible, too" />
</n:td>
</n:tr>
</zk>
When visible
is true
, the following HTML is rendered:
<tr> </tr>
Why is that?
ZK Fiddle: http://zkfiddle.org/sample/3ikg0ch/3-Weird-bug-with-native-HTML-and-zk-if
The full ZUL:
<zk xmlns:n="native">
<window border="normal" title="hello" viewModel="@id('vm') @init('pkg$.TestComposer')">
<div>
visible=${vm.visible}
</div>
<n:table style="border: 1px solid green;">
<n:tr>
<n:td>
<label value="Visible" />
</n:td>
</n:tr>
<zk if="${vm.visible}">
<n:tr>
<n:td>
<label value="Should be visible, too" />
</n:td>
</n:tr>
</zk>
</n:table>
<n:table style="border: 1px solid red;">
<n:tr>
<n:td>
<label value="Table 2" />
</n:td>
</n:tr>
<zk if="${vm.hidden}">
<n:tr>
<n:td>
<label value="Should be hidden" />
</n:td>
</n:tr>
</zk>
</n:table>
</window>
</zk>
View model:
package pkg$;
import org.zkoss.zk.ui.*;
import org.zkoss.zk.ui.event.*;
import org.zkoss.zk.ui.util.*;
import org.zkoss.zk.ui.ext.*;
import org.zkoss.zk.au.*;
import org.zkoss.zk.au.out.*;
import org.zkoss.zul.*;
public class TestComposer extends GenericForwardComposer{
public boolean isVisible() {
return true;
}
public boolean isHidden() {
return false;
}
}
I'm surprised that doesn't work either but this does: (remove the enclosing zk if=...
tag
<n:tr if="${vm.visible}">
<n:td>
<label value="Should be visible, too" />
</n:td>
</n:tr>