2016-10-24 10 views
0

Как добавить атрибут filter в <iron-data-table? (Пожалуйста, отправьте демонстрационную версию).Polymer 1.x: Как фильтровать таблицу данных железа?

I forked this plunk. Затем я попытался добавить фильтр, добавив следующую строку:

<iron-data-table 
    ... 
    filter="['item.user.name.first.length', '< 5']"> 

Это сломало плунж. Here is the new (now broken) plunk.

The documentation here describes the filter attribute as follows:

filter Массив, содержащий пары путь/значение фильтра, которые используются для фильтрации элементов.

Но у него отсутствует пример того, как его использовать.

Как добавить атрибут filter в <iron-data-table? (Пожалуйста, пост шлепнуть демо.)

ответ

3

Это не очень хорошо документированная особенность:

Как правило, вы бы идти об использовании filter-by и filter-value свойства в <data-table-column> элементов, но вы также можете получить доступ к filter собственности напрямую ,

Когда дело доходит до фильтрации источника данных items, существует только «содержащая» вид фильтрации. Таким образом, вы в значительной степени не можете фильтровать на основе длины строки, как в вашем Plnkr, с этими. Для более удобной функции фильтрации вам нужно использовать функцию dataSource, где вы можете делать все, что хотите, используя фильтры, предоставленные в качестве аргументов для функции источника данных.

В любом случае, в случае, если вы хотите еще получить доступ к filter непосредственно и, например, обеспечивает значение фильтрующего по умолчанию, вам необходимо установить значение как массив объектов, которые имеют path и filter недвижимости:

this.filter = [{path: 'user.name.first', filter: 'donna'}];

Пример: http://plnkr.co/edit/KIefwLNHeinkOgERWOvZ?p=preview

+0

+1. Но как я могу реализовать функцию 'dataSource', которую вы описываете? [Вот мой конкретный вопрос на этот счет] (http://stackoverflow.com/q/40250746/1640892). – Mowzer