使用ZK MVVM中的核心方法加载foreach

时间:2015-06-14 10:02:25

标签: zk

我想从我的虚拟现实中读取一些值。这是我到目前为止所做的一个例子

<div forEach="${vm.activityData.activityList}">
    <label
        value="@load(c:cat3('vm.activitiData.', each, '.organizer' ))" />
</div>

但似乎无法阅读each内的cat3。我的目标是让每个活动的组织者。知道如何实现这个目标吗?

更新

例如,我想简化这些代码:

<div>
    <label value="@load(vm.activityData.A.name)" />
    <label value="@load(vm.activityData.ASponsor)" />
    <label value="@load(vm.activityData.AOrganizer)" />
    <separator/>
    <label value="@load(vm.activityData.B.name)" />
    <label value="@load(vm.activityData.BSponsor)" />
    <label value="@load(vm.activityData.BOrganizer)" />
    <separator/>
</div>

<div forEach="${vm.activityData.activityList}">
    <label value="@load(c:cat3('vm.activityData.', each, '.name'))" />
    <label value="@load(c:cat3('vm.activityData.', each, 'Sponsor'))" />
    <label value="@load(c:cat3('vm.activityData.', each, 'Organizer'))" />
    <separator/>
</div>

基本上我想要做的是将部分字符串动态组合成一个字符串。然后使用@load(string)

1 个答案:

答案 0 :(得分:1)

今天我有时间测试它,我为你准备了一个小提琴 你的ZK版本还不错,但是我确实忘了添加一件东西了 你必须使用custom-attributes,否则它将无效。

解决方案:

<div forEach="${vm.activityData.activityList}">
    <custom-attributes field="${each}"/>
    <label value="@load(vm.activityData[field].name)" />
    <label value="@load(vm.activityData[c:cat(field, 'Sponsor')]" />
    <label value="@load(vm.activityData[c:cat(field, 'Organizer')]" />
    <separator/>
</div>

我快速创建了working fiddle where you can test or look how it works