3

我想使用 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 中做到这一点?

4

3 回答 3

5

好消息,大家!Seth Ladd 与 Peter B 的回答相关的问题在几个月前已修复{{$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>
于 2013-05-25T20:19:14.900 回答
1

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)"
于 2013-01-19T14:21:24.937 回答
0

或者考虑这个

Iterable<int> Indices(int size) => Iterable<int>.generate(size, (i) => i);
于 2013-05-04T06:02:21.760 回答