我需要在行中显示对象,每行有两个模型。在我的zul文件中,我必须以两个为一组对模型进行分组。如何使用foreach,foreachstatus或模板? 我正在使用zk网格
答案 0 :(得分:0)
电贺, AFAIK你只能在网格上应用1个模型。当然你可以在控制器端操作它 但是,如果您想知道模板组件的迭代元素索引, 使用@load( varName Status.index) 例如:
<template name="model" var="element">
然后在模板中:
<label value="@load(elementStatus.index)" />
并输出模型中元素的位置
更多信息here
答案 1 :(得分:0)
以下是在索引上2个模板之间切换的示例 您只需实现模2并检查1或0。
http://www.zkfiddle.org/sample/2rjaqos/4-MVVM-with-nested-template
该链接的zul代码:
<listbox model="@load(vm.beans)">
<listhead children="@load(vm.colTitle)">
<template name="children" var="title">
<listheader label="@load(title)" />
</template>
</listhead>
<template name="model" var="bean">
<listitem children="@load(vm.colTitle) @template(forEachStatus.index lt 1 ? 'fixed' : 'variable')">
<template name="fixed">
<listcell label="@load(bean.title)" />
</template>
<template name="variable">
<listcell>
<checkbox checked="@load(bean.states[forEachStatus.index - 1])"
label="@load(bean.states[forEachStatus.index - 1] ? 'true' : 'false')"
onCheck="@command('onCheckState', bean=bean, state=self.isChecked(), index=forEachStatus.index - 1)" />
</listcell>
</template>
</listitem>
</template>
</listbox>
这里是模数的另一个例子,但有1个模板:
http://zkfiddle.org/sample/2pmngjk/9-Listbox-with-Template
第二个例子的Zul代码:
<zk>
<window apply="pkg$.FruitProvider">
<listbox model="${$composer.fruits}">
<template name="model">
<listitem>
<listcell if="${forEachStatus.index % 2 == 0}">
<textbox value="${each[0]}" />
<textbox value="${each[1]}" />
</listcell>
<listcell unless="${forEachStatus.index % 2 == 0}">
<label value="${each[0]}" />
<label value="${each[1]}" />
</listcell>
</listitem>
</template>
</listbox>
</window>
</zk>