В полимерном дротике, как мне считать внутри повторяющегося шаблона

Скажем, у меня есть повторяющийся шаблон:

<template bind repeat id='my-template'>
    This is the bound value: <span id="#myid[x]"> {{}} </span>
</template>

что я могу заменить [x], что будет уникальным? Доступ к счетчику циклов поможет, но я открыт для предложений.


person Alan Humphrey    schedule 10.08.2013    source источник


Ответы (1)


Я добавляю некоторые утилиты в 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>

Я пытаюсь получить кучу утилит, таких как itertools Python, в библиотеку для таких целей. Я обновлю, когда они будут доступны.

person Justin Fagnani    schedule 10.08.2013