2015-10-15 13 views
7

Element dom-repeat oferuje atrybut filter.Jak filtrować listę żelazną w polimerze 1.0?

Czy istnieje podobny sposób filtrowania za pomocą iron-list?

Na przykład: Biorąc pod uwagę listę osób, chcę odfiltrować te urodzone w określonym mieście.

+0

brzmi jak zadanie dla backend – user656449

+0

może chcesz studiować [ 'żelaza danych table'] (https: //saulis.github.io/iron-data-table/). https://saulis.github.io/iron-data-table/ – Mowzer

Odpowiedz

10

Jako że iron-list nie oferuje atrybutu filter, nie ma deklaratywnego wzorca, który to umożliwia.

Możesz wdrożyć własny prosty element listy, korzystając z właściwości filtra dom-repeat. (W przypadku dziedziczenia elementów w przyszłych wydaniach można rozszerzyć zakres iron-list).

Jednak najlepszą praktyką I obecnie zobaczyć jest wykorzystanie właściwości wyliczona:

<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

załóżmy, że jeśli mam pasek wyszukiwania i wpisywanie liter w danych wejściowych wyszukiwania, co jest potrzebne do filtrowania? należy dodać obserwator "filterItems", aby wyszukać właściwość wejściową? –

+0

Czy ktoś może rozwinąć to rozwiązanie? –

+0

są elementy wyszukiwania w webcomponents.org do wyszukiwania. Możesz również zajrzeć do nich. Ale wydaje mi się, że możesz użyć obserwatorów zamiast obliczonych właściwości i po prostu ustawić elementy tam, gdzie zmienia się twoje wejście. Ponadto, pasek wyszukiwania najprawdopodobniej ma dane wejściowe, które mogą być w stanie używać zdarzenia zmiany danych wejściowych i wykonywać tam pracę – TheeBen