如何在ZK模板标签中使用if =“some condition”

时间:2013-03-11 06:32:47

标签: data-binding mvvm zk

我有一个< template>在我的ZUL文件中标记,并且我想在某些条件符合时使用此模板(例如,当某些LABEL的值更改为某些文本时)。

请看下面的代码......正如您所看到的,“templateStatus”是我的标签名称,但它不起作用。

如何解决此问题?

    <template name="allTaskTemplate" var="allTask" if="templateStatus.value == 'allTask'">
        <row>
            <label value="" />
            <label value="@load(allTask.documentDTO.docTypeDTO.title)"/>
            <label value="@load(allTask.documentDTO.docNumber)"/>
            <label value="@load(allTask.documentDTO.docDateTime)"/>
            <label value="@load(allTask.assignerID)"/>
            <label value="@load(allTask.assigneeID)"/>
            <label value="@load(allTask.assignDateTime)"/>
            <label value="@load(allTask.assignDateTime)"/>
            <label value="@load(allTask.assignDateTime)"/>
            <label value="@load(allTask.assignDateTime)"/>
            <label value="@load(allTask.documentDTO.docTypeStateDTO.stateActionDTO.actionDTO.title)"/>
            <label value="@load(allTask.catalogDTO.catalogTypeDTO.title)"/>
        </row>
    </template>
</grid>

2 个答案:

答案 0 :(得分:4)

使用if声明:

<zk if="${vm.type=='foo'}">
    <!-- Child components -->
</zk>

<zk if="${vm.type=='check'}">
    <!-- Child components -->
</zk>

<zk if="${vm.type=='something'}">
    <!-- Child components -->
</zk>

<zk if="${vm.type=='value'}">
    <!-- Child components -->
</zk>

答案 1 :(得分:1)

请参阅以下ZK示例。您可以使用条件模板...

<grid model="@bind(vm.itemList) @template(vm.type eq 'foo'?'template1':'template2')">
    <template name="template1">
    <!-- child components -->
    </template>

    <template name="template2">
    <!-- child components -->
    </template>
</grid>

有关详细信息,请参阅ZK的官方页面, Collection and Selection

请输入以下代码...

   <menubar id="mbar" children="@bind(vm.menuList) @template(empty each.children?'menuitem':'menu')">
    <template name="menu" var="menu">
        <menu label="@bind(menu.name)">
            <menupopup children="@bind(menu.children) @template(empty each.children?'menuitem':'menu')"/>
        </menu>
    </template>
    <template name="menuitem" var="item">
        <menuitem label="@bind(item.name)" onClick="@command('menuClicked',node=item)" />
    </template>
</menubar>

见上文。使用两个以上的模板,你可以做这样的事情。我不知道您的要求,但您可以使用上述逻辑并在您的代码中实现它。

或者你可以看到同样的ZK论坛,Zk forum