DART Web UI:如何在迭代循环中引用索引

时间:2013-01-19 13:35:42

标签: dart dart-webui

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

3 个答案:

答案 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);