我正在尝试listbox
在我的模板中生成可变数量的 'es:
<listbox forEach="${vm.columns}" model="@load(vm.getData(each))">
<listhead>
<listheader label="column${each}" width="260px" />
</listhead>
</listbox>
ViewModel(简化)如下所示:
public class MyViewModel {
private static final int COLUMN_COUNT = 3;
private List<Integer> columns = new ArrayList<>();
@Init
public void init() {
for (int i = 0; i < COLUMN_COUNT; i++) {
columns.add(i);
}
}
public List<Integer> getColumns() {
return columns;
}
public void setColumns(List<Integer> columns) {
this.columns = columns;
}
public List<Picture> getData(Integer pos) {
System.out.println("GET DATA = " + pos);
// rest of the code ...
}
}
所以生成部分工作正常,我可以看到生成了 3 个列表框,每个列表框都有相应的列标题“column0”、“column1”和“column3”。但是当我调查日志时,我看到该getData
方法被调用了 3 次,但始终使用参数 = 0:
2013-10-15T21:16:55.758+0200|INFO: GET DATA = 0
2013-10-15T21:16:55.847+0200|INFO: GET DATA = 0
2013-10-15T21:16:55.849+0200|INFO: GET DATA = 0
也许有人可以解释,为什么使用变量${each}
inlistheader
可以正常工作,但不能在@load
表达式中使用?
有没有办法解决这个问题?
谢谢!