zk元素,如果@load等于condition



我在zul文件中构建了一个列表。

<listbox id="someId" model="@load(vm.searchResults)" selectedItem="@bind(vm.selectedItem)" vflex="1" multiple="true">
    <listhead>
        <listheader label="${labels.l1}" width="150px" align="center"/>
        <listheader label="${labels.l2}" width="150px" align="center"/>
        <listheader label="${labels.l3}" width="100px" align="center"/>
    <listheader label="${labels.l4}" width="400px" align="center"/>
    </listhead>
    <template name="model">
        <listitem style="text-align: left;">
            <listcell style="word-wrap: break-word; text-align: left;">
                <label value="@load(each.l1)"/>
            </listcell>
            <listcell style="word-wrap: break-word; text-align: left;">
                <label value="@load(each.l2)"/>
            </listcell>
            <listcell style="word-wrap: break-word; text-align: left;">
                <label value="@load(each.l3)"/>
                <a action="" label="should be displayed when some param is equals to 3 " if="{each.someParam=='3'}"/>
            </listcell>
            <listcell style="text-align: left;">
                <label value="@load(each.l4)"/>
            </listcell>
        </listitem>
    </template>
</listbox>

当每个参数为3时,我需要显示一个元素。我该怎么得到它?

<a action="" label="should be displayed when some param is equals to 3 " if="{each.someParam=='3'}"/>

我检查过了如何使用if=";某些条件";在ZK模板标签中

但这对我没有帮助。

我也试过

<a action="" label="should be displayed when some param is equals to 3 " if="{@(each.someParam)=='3'}"/>

也没用'3'3不会改变任何内容。如果我删除如果条件,则会显示元素。但我只想在满足if条件时显示它。

请帮助我

很高兴您解决了问题
我会给出这个答案,这样你就可以更好地理解为什么它不起作用

首先,if属性不能处理动态数据
因此,只有使用${…}(static)进行剥离才能工作
有了ZK8,就有了一个新标签<if test="">,它可以处理动态数据

这不是需要在<zk>标记中设置if的问题,而是示例中的问题是@或缺少$
可以说,@{...}是不推荐使用的数据绑定
这是MVVM模式的演变,但太糟糕了,他们不赞成使用它,还删除了有关它的大部分文档,这是一个很好的例子,所以没有新的人可以学会使用它。

也许有一个可以帮助你的建议:

<style>
    .makeYourName {
        word-wrap: break-word; 
        text-align: left;
     }
</style>

然后创建你的列表单元格,如:

<listcell sclass="makeYourName">

可以在需要重构样式时为您节省时间。

我在类似的项目中找到了解决方案。

<zk if="${(each.l3== 3)}">
    <a action="" label="should be displayed when some param is equals to 3"/>
</zk>

这对我有用。

注意if="${each.l3==3}"

相关内容

  • 没有找到相关文章

最新更新