Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to filter an iron-list in polymer 1.0?

The dom-repeat element offers a filter attribute.

Is there a similar way to filter with iron-list?

For example: Given a list of people, I want to filter the ones born in a specific city.

like image 545
Emerson Bottero Avatar asked Oct 15 '15 02:10

Emerson Bottero


1 Answers

As iron-list unfortunately doesn't offer a filter attribute, there is no declarative pattern making this possible.

You can either implement your own simple list element making use of dom-repeat's filter property. (With element inheritance coming back in future releases, you might extend iron-list).

However, the best practice I currently see is the use of a computed property:

<template>
  <iron-list items="[[filterItems(items)]]" as="item">
    ...
  </iron-list>
</template>

<script>
Polymer({
  ...
  filterItems: function (items) {
    return items.filter(function (item) { // Array.prototype.filter
      return item.priority > 8; // Filter condition
    });
  }
});
</script>
like image 131
filip Avatar answered Nov 19 '22 14:11

filip