gpt4 book ai didi

javascript - ngTables 中的 Angular 自定义过滤

转载 作者:行者123 更新时间:2023-11-29 10:14:57 24 4
gpt4 key购买 nike

我正在尝试在 ngTables 中进行一些自定义过滤(类似于 this example ),但使用文本输入字段。我有一组带有标准文本输入过滤器的列,对于其中一些我想使用我自己的过滤函数,而不是默认的 Angular $filter('filter')(array, params.filter()) ,但类似于 $filter('myOwnFilter')(array, params.filter())

过滤发生在我的 Controller 中:

var orderedData = params.filter() ? $filter('filter')(array, params.filter()) : array;

我有什么:

<td class="text-left" data-title="'Name'" filter="{ 'Column': 'myOwnFilter' }" data-sortable="'Column'">
{{ array.Column }}
</td>

和模板:

<script type="text/ng-template" id="ng-table/filters/myOwnFilter.html">
<input type="text" name="myOwnFilter" data-ng-model="params.filter()[name]" data-ng-if="filter == 'myOwnFilter'" class="input-filter form-control"/>
</script>

最佳答案

正如这个问题中的回答 https://stackoverflow.com/a/27296677/61577您必须在 Controller 中使用自定义“比较器”函数作为第三个参数。一个简单的例子

var myCustomComparator = function(value, searchTerm) {
return (value || '').indexOf(searchTerm) > -1;
}

然后在你的 getData 回调中

var orderedData = params.filter() ? $filter('filter')(array, params.filter(), myCustomComparator) : array;

请注意,如果您需要为不同的列/字段使用不同的比较器,您必须检查 params.filter()。

filter comparator 的 Angular 文档

关于javascript - ngTables 中的 Angular 自定义过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24264139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com