Dart: как получить текущий индекс элемента списка в элементе Polymer на стороне клиента?

Я новичок в Dart и пытался узнать, как получить текущий индекс элемента в списке в случае, как описано ниже:

1) Я запускаю сервер, когда список объектов извлекается из базы данных и отправляется в веб-приложение Dart на стороне клиента через JSON 2) На веб-странице на стороне клиента Dart я хочу разместить элементы этого списка в таблице, но в мода mod3, то есть более N строк на три столбца.

Итак, я решил просканировать список с помощью шаблона Polymer, получить текущий элемент, добавить его в таблицу (т.е. написать тег HTML), а затем проверить, равен ли индекс текущего элемента mod3 (% 3) = нулю.

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

Любая помощь будет высоко ценится!


person user1760697    schedule 28.10.2013    source источник


Ответы (1)


Простой способ получить доступ к индексу текущего итератора, используемого в операторе повторения полимера, - это использовать фильтр перечисления.

<polymer-element name="my-element">
  <template>
    <table>
      <tbody template repeat="{{item in myList | enumerate}}">
        <template if="{{item.index % 3 == 0}}">
          <tr>
        </template>
      <td>item.value</td>
        <template if="{{item.index % 3 == 0}}">
          </tr>
        </template>
      </tbody>
    </table>
  </template>
</polymer-element>

Однако это не полностью завершено, поскольку в прошлом были проблемы, когда вы не могли использовать <template> в элементе таблицы. Я не уверен на 100%, так ли это до сих пор (поскольку мне не удалось найти какую-либо окончательную информацию о разрешении или нет). Альтернативой является использование классов <div> и для размещения ваших данных.

Просто используйте CSS, чтобы установить стиль div на table, table-row или table-cell соответственно. См. свойство отображения CSS в W3Schools для получения дополнительной информации. Решение <div> разрешает шаблоны по мере необходимости.

person Matt B    schedule 28.10.2013