不推荐的写法:
页面代码:
<div class="form-group label-row">
<label class="col-lg-4 control-label">
角色
</label>
<div class="col-lg-8" forEach="${vm.listRole}">
<z:label style="${vm.count}" value="${ec:labelValue0(each)}" />
</div>
</div>
后台VM代码为:
private int count = 0;
public String getCount(){
if (0 == count){
count++;
return null;
}else {
return "margin-left: 186px;";
}
}
- 这里主要用后台代码进行判断当前集合是否为第一个,如果是第一个元素则返回null,如果不是第一个元素,则返回style样式的值.
推荐的写法如下
- 1), forEachStatus 变量
- forEachStatus变量是org.zkoss.ui.util.ForEachStatus的一个实例 (instance),用来保存(hold)当前迭代(iteration)的信息。也主要用于取得封闭元素的 项目,这些元素已通过 forEach 属性赋值。具体使用,如下这个例子
- 2), attribute 元素
- attribute元素是用来定义 XML 元素属性的元素。妥善使用,它可以使页面更具可读性。
- 你还可以决定是否使用trim属性来省略属性值开头和末位的值
属性名称 | 描述 |
name | 必须 指定属性名称 |
trim | 可选 默认为false 指定是否省略属性值开头及末尾的空格 |
if | 可选 指定为这个元素赋值的条件 |
unless | 可选 指定不为这个元素赋值的条件 |
前台页面代码
<div class="form-group label-row">
<label class="col-lg-4 control-label">
角色
</label>
<div class="col-lg-8" forEach="${vm.userRoles}">
<z:label value="${ec:labelValue0(each)}">
<z:attribute name="style" trim="true" if="${forEachStatus.index gt 0}">
margin-left:186px;
</z:attribute>
</z:label>
</div>
</div>
- 这里没用使用后台代码来进行判断,这样更加方便