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

皆さん、朗報です!PeterBの回答にリンクされているSethLaddの問題は、数か月前に修正され{{$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 に答える