2015-10-15 60 views
7

dom-repeat元素提供filter属性。如何过滤聚合物1.0中的铁清单?

有没有类似的方法来筛选iron-list

例如:给定一个人名单,我想过滤出生在特定城市的名单。

+0

听起来像后台任务 – user656449

+0

你可能想学习['铁数据table'(HTTPS: //saulis.github.io/iron-data-table/)。 https://saulis.github.io/iron-data-table/ – Mowzer

回答

10

由于iron-list不幸的是不提供filter属性,没有声明模式使这成为可能。

您可以使用dom-repeat的过滤器属性来实现您自己的简单列表元素。 (随着未来版本中的元素继承回来,您可能会扩展iron-list)。

不过,我目前看到的最好的做法是使用一个计算的属性:

<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> 
+0

假设如果我有一个搜索栏,并在搜索输入中键入字母,那么我需要过滤?我应该添加一个观察者'filterItems'来搜索输入属性? –

+0

有人可以详细说明这个解决方案吗? –

+0

webcomponents.org中有搜索组件用于搜索。你可能也想看看那些。但对我来说,您似乎可以使用观察者而不是计算属性,只需在输入发生变化时在其中设置项目即可。此外,搜索栏很可能有一个输入,您可能可以使用输入的on-change事件并在那里执行您的工作 – TheeBen

相关问题