Je suis bloqué avec le filtrage ng-table.Utilisation du filtrage dans AngularJS ngTable avec une propriété d'objet imbriquée
L'exemple de http://ng-table.com/#/filtering/demo-nested-property indique d'utiliser cette syntaxe dans le balisage, comme indiqué ci-dessous. Mais ça ne marche pas quand j'essaye de faire le filtrage dans mon contrôleur (code ci-dessous). En utilisant l'exemple du site lorsque j'obtiens l'objet de filtre dans le contrôleur, j'obtiens {tabela_tuss.descricao:"asda"}
. Le bon sera: {tabela_tuss:{descricao:"asda"}}
Je:
// balisage:
<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>
Pour travailler, je besoin d'un filtre:
filter="{ 'tabela_tuss:{'descricao': 'text' }}"
Mais, si je fais cela, je reçois une erreur en angulaire comme:
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 [}].
J'ai besoin que le filtre à utiliser dans mon contrôleur: // contrôleur
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;
}
}
);
});
Mon échantillon de données est:
data:[
{_id: "5927043517e34011e48d8444",
nome: "proced 1",
tabela_tuss:{id:1,descricao:'descr test'}
]
Je suis d'accord avec vous. Je l'ai déjà testé. Mais si je l'utilise, j'obtiens une autre erreur: "angular.js: 14328 TypeError: Impossible de lire la propriété 'indexOf' de non défini à t.getTemplateUrl (ngTableFilterConfig.ts: 81) à fn (eval lors de la compilation (angulaire. js: 15156),: 4:. 306) à périmètre digest $ (angularjs: 17806) à périmètre $ sont applicables (angularjs:. 18080) à fait (angularjs: 12210) à completeRequest (angular.js: 12436) à XMLHttpRequest.requestLoaded (angular.js: 12364) " –