How to filter an iron-list in polymer 1.0?

2019-03-27 14:55发布

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.

1条回答
Explosion°爆炸
2楼-- · 2019-03-27 15:44

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>
查看更多
登录 后发表回答