【发布时间】:2015-11-18 19:28:01
【问题描述】:
您好,我正在学习 AngularJs,我正在使用 ng-table,但我不知道如何在一个字段中进行多重过滤。
我知道如何进行过滤和排序,我搜索并阅读了但我找不到任何适合我的东西,我想有办法。
谢谢并原谅我的英语。
编辑:这是我的代码
$scope.init = 函数 () {
$http.post(slim + 'grupos2', $.extend({}, false, window.seguridad)).then(function(response) {
$scope.grupos = 响应;
var data2 = $scope.grupos.data;
$scope.tableParams = new ngTableParams({
page: 1,
count: 10,
filter: {
},
sorting: {
nombre: 'asc'
}
}, {
total: data2.length,
getData: function($defer, params) {
var orderedData = params.filter() ?
$filter('filter')(data2, params.filter()) :
data2;
orderedData = params.sorting() ?
$filter('orderBy')(orderedData, params.orderBy()) :
orderedData;
$scope.grupete = orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count());
params.total(orderedData.length);
$defer.resolve($scope.grupete);
}
});
});
和
<tr ng-repeat="grupo in grupete">
<td data-title="'Num'" sortable="'idGrupo'">{{grupo.idGrupo}}</td>
<td data-title="'Name'" sortable="'name'" filter="{ 'name': 'text' }" >{{grupo.nombre}}</td>
<td data-title="'Aforo'" sortable="'aforo'" >{{grupo.aforo}}</td>
<td data-title="'Fecha'" sortable="'fecha'" >{{grupo.fecha.toString()}}</td>
</tr>
</table>
我希望有一个过滤器可以搜索名称等多个字段。
filter="{ 'name': 'text' }"
【问题讨论】:
-
你能贴出你迄今为止尝试过的任何代码吗?
-
您可以使用管道运算符在视图中链接多个过滤器。它基本上将一个过滤器的输出作为下一个过滤器的输入。
<tr ng-repeat="grupo in grupete | filter:params.filter | orderBy:params.orderBy()"> -
原谅不明白你已经回答了我 cubbuk ,你告诉我的方式是过滤并制作 orderby 字段,就像我拥有的代码一样,但我仍然有同样的问题,因为我这样做了field 是董事会几个领域的过滤器,我认为这个问题是新手,但这是我想学习做的事情。
-
这个想法是使用带来 ng -table 的过滤器之一并使其在所有字段中查找,已尝试使用过滤器制作过滤器但效果不佳,也没有更新数据ng -table 中的每一页