【发布时间】:2015-03-05 13:02:18
【问题描述】:
我正在使用非常好的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的thead中如下使用.....
<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>
所以理想情况下,我希望能够通过稍微改变指令在 st-custom-filter 中使用“New||Failed”之类的东西,但我觉得答案可能在于写更多东西复杂的涉及st-pipe方法。
谁能提供一两个建议?非常感谢。
【问题讨论】:
标签: angularjs angularjs-directive smart-table