我想在HTML中使用迭代循环的索引作为值,如:
<select bind-value="gAddItem.drawType"
template iterate="int ind = 0; ind < gDrawDescs.length; ind++">
<option value="{{ind.toString()}}"> {{gDrawDescs[ind]}} </option>
</select>
但这种直观的语法似乎不起作用。有没有办法在Dart Web-ui中做到这一点?
答案 0 :(得分:5)
好消息,大家好!几个月前,Seth Ladd与Peter B的答案相关的问题是fixed,所以现在你可以在{{$index}}
内引用<template>
。从该提交中添加的测试代码:
Test the $index meta variable:
<template repeat="item in items" indentation="remove">
<div>
"{{item}}" is the {{$index}}{{suffix($index)}} item out of {{$list.length}}.
</div>
</template>
答案 1 :(得分:0)
Dart似乎不允许列表范围文字,这将允许整洁的解决方案:
iterate="ind in [0 ... gDrawDescs.length]"
要解决此问题,请创建以下函数:
List<int> createList(final int cnt) {
var list = new List();
for (var i=0; i<cnt; i++) {
list.add(i);
}
return list;
}
在HTML中:
iterate="ind in createList(gDrawDescs.length)"
答案 2 :(得分:0)
或者考虑一下
Iterable<int> Indices(int size) => Iterable<int>.generate(size, (i) => i);