ng表编号范围筛选器不起作用
ng-table number range filter is not working
- 我想做什么
我正试图使我的一列(在一列中(采用两个数字,这样我就可以按范围过滤该列的数字数据。所有其他排序、分页和按"包含文本"进行筛选都很好,但我不确定如何使一个特定列具有"范围"筛选器。
-
我想要的图形表示
column_header1 columns_header2 column_header3 contain_filter1 contain_filter2 filter3_min_number filter3_max_number data data numeric data . . . . . . . . .
-
到目前为止我有什么
我在ng表模块网站上找到了一个例子,我试图将他们的代码实现到我的代码中,但当我必须在"getData"中实现range函数时,我不知道如何实现它。我发现的例子http://codepen.io/christianacca/pen/yNWeOP"年龄"数据的自定义过滤算法就是我所关注的。
-
我的app.js
$http.get("http://hostname:port/variant/whole/1-10000", {cache: true}) .then(function (response) { $scope.variants = response.data; $scope.data = $scope.variants; var self = this; self.variantFilterDef = { start: { id: 'number', placeholder: 'Start' }, end: { id: 'number', placeholder: 'End' } }; self.variantsTable = new NgTableParams({ page:1, count: 10 }, { filterOptions: { filterFn: variantRangeFilter }, dataset: $scope.data, filterLayout: "horizontal" }); function variantRangeFilter(data, filterValues/*, comparator*/){ return data.filter(function(item){ var start = filterValues.start == null ? Number.MIN_VALUE : filterValues.start; var end = filterValues.end == null ? Number.MAX_VALUE : filterValues.end; return start <= item.pos && end >= item.pos; }); } /* from this part on, it is working code but no 'Range' function $scope.variantsTable = new NgTableParams({ page: 1, count: 10 }, { total: $scope.variants.length, getData: function (params) { if (params.sorting()) { $scope.data = $filter('orderBy')($scope.variants, params.orderBy()); } else { $scope.data = $scope.variants; } if (params.filter()) { $scope.data = $filter('filter')($scope.data, params.filter()); } else { $scope.data = $scope.data; } $scope.data = $scope.data.slice((params.page() - 1) * params.count(), params.page() * params.count()); return $scope.data; } }); */ }); });
my variant.html
<table ng-table="variantsTable" show-filter="true" class="table table-bordered table-striped table-condensed"> <tr ng-repeat="variant in $data"> <td data-title="'chrom'" sortable="'chrom'" filter="{ 'chrom': 'text' }" > {{variant.chrom}} </td> <td data-title="'id'" sortable="'id'" filter="{ 'id': 'text' }" > {{variant.id}} </td> <td data-title="'pos'" sortable = "'pos'" filter = "{ 'pos': 'text' }"> {{variant.pos}} </td>
如果有任何建议或意见,我将不胜感激,谢谢!
ID表单元格的filter属性不正确。
<td data-title="'id'" sortable="'id'" filter="{ 'id': 'text' }">
{{variant.id}}
</td>
更改为:
<td data-title="'id'" sortable="'id'" filter="variantFilterDef">
{{variant.id}}
</td>
编辑
经过一点尝试和错误,我使它工作。我从您的代码示例开始,做了一些更改。我使用了ControllerAs语法。但本质上的修复是:
<td data-title="'chrom'" sortable="'chrom'" filter="{ 'chrom': 'text' }">
至
<td data-title="'chrom'" sortable="'chrom'" filter="{ 'name': 'text' }">
<td data-title="'pos'" sortable = "'pos'" filter = "{ 'pos': 'text' }">
至
<td data-title="'pos'" sortable="'pos'" filter="variantCtrl.variantFilterDef">
if (params.filter()) { self.data = $filter('filter')(self.data, {name: params.filter().name}); self.data = variantRangeFilter(self.data, params.filter()); } else { self.data = self.data; }
主要问题是需要通过使用{name: params.filter().name})
&然后单独调用自定义Pos过滤器。
代码笔:http://codepen.io/anon/pen/QKBYOq?editors=1011
- 在筛选网格期间,网格负载掩码不起作用
- jQuery dataTables基于类型的列筛选不起作用?Img alt过滤器/排序
- 刷新页面后筛选器不起作用
- JQuery多属性筛选器不起作用
- 筛选器's的第二个参数不起作用
- 控制器中的筛选列表没有'不起作用
- 个别列筛选器在Datatable中不起作用
- Videogular-hh:mm:ss格式的日期筛选器不起作用
- Onresize函数在价格筛选滑块中不起作用
- 剑道 UI 网格筛选器在之前打开弹出窗口时不起作用
- 基于从下拉列表中选择的值的筛选列表不起作用
- 搜索筛选器不起作用.角度Js
- Knockout+DataTables筛选;不起作用
- Backgrid筛选器在主干应用程序中不起作用
- 包含下拉选择(在正文中,而不是标题或筛选器中)的表分类器在IE中不起作用
- 使用complexQuery的Dojo DataGrid筛选不起作用
- 筛选表行不起作用
- wsapi存储的筛选器函数在Rally SDK中不起作用
- ng表编号范围筛选器不起作用
- 筛选复选框以显示其类;不起作用