Я использую очень хорошую библиотеку Smart-table для отображения своих данных. Я сделал пользовательскую директиву фильтра, чтобы позволить мне назначать фильтры кнопкам, чтобы пользователи могли легко фильтровать по состоянию строки (например, «Новое», «Готово», «Ошибка» и т. д.). Это отлично работает, но я хотел бы иметь возможность составлять фильтры, чтобы я мог фильтровать по строкам, содержащим одно из двух значений в столбце состояния (например, «Новое» и «Ошибка»).
Мой пользовательский фильтр выглядит так....
app.directive('stCustomFilter', function() {
return {
restrict: 'A',
require: '^stTable',
scope: true,
link: function(scope, element, attr, ctrl) {
var tableState = ctrl.tableState();
var searchText = attr.stCustomFilter;
var searchColumn = attr.stCustomFilterColumn;
element.on('click', function(data) {
tableState.search.predicateObject = {};
ctrl.search(searchText, searchColumn);
//console.log(tableState);
scope.$apply();
})
}
};
});
и используется внутри таблицы st-table следующим образом.....
<div class="btn-group btn-group-sm">
<button st-custom-filter="" st-custom-filter-column="status">All</button>
<button st-custom-filter="New" st-custom-filter-column="status">New</button>
<button st-custom-filter="Done" st-custom-filter-column="status">Done</button>
<button st-custom-filter="Failed" st-custom-filter-column="status">Failed</button>
</div>
Так что в идеале я хотел бы иметь возможность использовать что-то вроде "New||Failed" внутри st-custom-filter, слегка изменив директиву, но у меня есть ощущение, что ответ может заключаться в написании чего-то более сложного, включающего метод st-pipe.
Может ли кто-нибудь предложить предложение или два? Большое спасибо.