我坚持ng-table
过滤。
http://ng-table.com/#/filtering/demo-nested-property 中的示例说将此语法用于标记,如下所示。但是当我尝试在我的控制器中进行过滤时它不起作用(下面的代码(。
当我在控制器中获取过滤器对象时,使用站点的示例,我得到 {tabela_tuss.descricao:"asda"}
.正确的将是:{tabela_tuss:{descricao:"asda"}}
我有:
//标记:
<table ng-table="tableParams" class="table table-bordered table-striped table-condensed">
<tr ng-repeat="row in $data track by row._id">
<td data-title="'Descrição'" filter="{ 'tabela_tuss.descricao': 'text' }" >{{row.tabela_tuss.descricao}}</a></td>
</td>
</tr>
</table>
为了工作,我需要一个过滤器,因为:
filter="{ 'tabela_tuss:{'descricao': 'text' }}"
但是,如果我这样做,我会得到一个角度错误,如:
angular.js:14328 Error: [$parse:syntax] Syntax Error: Token '}' is an unexpected
token at column 37 of the expression [{ 'tabela_tuss:{descricao': 'text'} }]
starting at [}].
我需要在控制器中使用该过滤器:控制器
dataService.getProcedimentos().then(function (response){
$scope.data=response.data;
$scope.tableParams = new NgTableParams({
page: 1, // show first page
count: 10,
sorting: {
nome: 'asc'
}
},
{ getData: function(params) {
var sdata = params.sorting() ? $filter('orderBy')($scope.data, params.orderBy()) : $scope.data;
sdata = params.filter() ? $filter('filter')(sdata, params.filter()) : sdata;
//sdata = params.filter() ? $filter('filter')(sdata, {tabela_tuss:{descricao:'B'}}) : sdata;
console.log(params.filter());
params.total(sdata.length);
sdata = sdata.slice((params.page() - 1) * params.count(), params.page() * params.count());
return sdata;
}
}
);
});
我的数据示例是:
data:[
{_id: "5927043517e34011e48d8444",
nome: "proced 1",
tabela_tuss:{id:1,descricao:'descr test'}
]
您收到解析语法错误,因为存在语法错误。将过滤器从
filter="{ 'tabela_tuss:{'descricao': 'text' }}"
自
filter="{ 'tabela_tuss':{'descricao': 'text' }}"