Polymer 2.x + Firebase: как поменять порядок следования железных листов?

Я хочу отобразить мои данные в обратном хронологическом порядке того, как / когда они были введены. Другими словами, я хочу, чтобы самые последние записи отображались вверху.

Я использую Polymerfire <firebase-query> получить данные из моего приложения Firebase/Polymer, и я использую <iron-list> для отображения данных. В настоящее время список содержит самые последние записи внизу списка.

Я ожидаю, что изменение порядка в любом <firebase-query> или же <iron-list> должно привести к желаемому поведению. Я предпочитаю сделать это без использования items.reverse() метод. Существуют ли какие-либо свойства или методы, свойственныеiron-list или Polymerfire для достижения желаемого поведения?

<firebase-query
    id="query"
    app-name="notes"
    path="/notes/[[uid]]"
    data="{{items}}">
</firebase-query>

<iron-list items="[[items]]">
  <template>
    <div>
      [[item.name]]
    </div>
  </template>
</iron-list>

<script>
Polymer({
  properties: {
    uid: String,
    items: {
      type: Object,
      observer: 'itemsChanged'
    }
  },

  itemsChanged: function (newItems, oldItems) {
    // do something when the query returns values
  }
});
</script>

1 ответ

Решение

Насколько я знаю (и мог бы быстро проверить в исходном коде PolymerFire для его query компонент) нет ничего встроенного в библиотеку для обращения элементов из базы данных.

Оставшаяся опция - добавить дополнительное свойство к узлам вашей базы данных с инвертированным значением свойства, по которому вы хотите отсортировать. Так что в вашем случае это может быть инвертированная метка времени: -1 * Date.now(), Если вы затем сортируете это инвертированное значение, результаты будут отображаться в порядке убывания исходной отметки времени.

Другие вопросы по тегам