【问题标题】:How to use if="some condition" in ZK template tag如何在 ZK 模板标签中使用 if="some condition"
【发布时间】:2013-03-11 06:32:46
【问题描述】:

我的 ZUL 文件中有一个

请看下面的代码...如您所见,“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>

【问题讨论】:

    标签: data-binding mvvm zk


    【解决方案1】:

    使用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>
    

    【讨论】:

      【解决方案2】:

      请参阅下面的 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

      【讨论】:

      • 感谢亲爱的 subodh,但我有 4 个模板。你对我的情况有什么建议吗?
      猜你喜欢
      • 2014-01-18
      • 2019-07-09
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      • 2014-03-20
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      相关资源
      最近更新 更多