繰り返しテンプレートがあるとします。
<template bind repeat id='my-template'>
This is the bound value: <span id="#myid[x]"> {{}} </span>
</template>
[x] を何に置き換えると一意になりますか? ループ カウンターにアクセスすればうまくいきますが、私は提案を受け付けています。
繰り返しテンプレートがあるとします。
<template bind repeat id='my-template'>
This is the bound value: <span id="#myid[x]"> {{}} </span>
</template>
[x] を何に置き換えると一意になりますか? ループ カウンターにアクセスすればうまくいきますが、私は提案を受け付けています。
これを支援するために、Fancy Syntax (Polymer.dart のデフォルトのバインディング構文) にいくつかのユーティリティを追加していますが、基本的な概要は、インデックスを追加して新しい Iterable を返すフィルターを介してコレクションを実行することです。
ただし、これを実行するコードは次のとおりです。
import 'package:fancy_syntax/fancy_syntax.dart';
import 'package:mdv/mdv.dart';
Iterable<IndexedValue> enumerate(Iterable iterable) {
int i = 0;
return iterable.map((e) => new IndexedValue(i++, e));
}
class IndexedValue<V> {
final int index;
final V value;
IndexedValue(this.index, this.value);
}
main() {
query('#my-template')
..bindingDelegate = new FancySyntax(globals: {
'enumerate': enumerate,
})
..model = ['A', 'B', 'C'];
}
<template bind id='my-template'>
<template repeat="{{ item in this | enumerate }}">
This is the bound value: <span id="#myid-{{ item.index }}">{{ item.value }}</span>
</template>
</template>
このような用途のために、Python の itertools のような一連のユーティリティをライブラリに入れようとしています。利用可能になったら更新します。