我坚持使用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'}
]
答案 0 :(得分:0)
您收到解析语法错误,因为存在语法错误。 从
更改过滤器<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="tempEditorView">
<div class="widgetHeading widgetWrap" style="display: block;">
<div class="LPtempEditArea"><i class="LPclone">Clone</i></div>
<h1 contenteditable="true">Add your heading text here</h1>
</div>
</div>
到
filter="{ 'tabela_tuss:{'descricao': 'text' }}"