使用过滤在AngularJS ngTable王氏嵌套的对象属性

使用过滤在AngularJS ngTable王氏嵌套的对象属性

问题描述:

我坚持NG-表过滤。使用过滤在AngularJS ngTable王氏嵌套的对象属性

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' }}" 
+0

我同意你的看法。我已经测试过它。但是,如果使用它,我得到一个其它的错误:“angular.js:14328类型错误:在FN(EVAL在编译(角 :无法读取性能在t.getTemplateUrl的不确定 ‘的indexOf’(81 ngTableFilterConfig.ts)。 JS:15156),:4:306) 在范围$摘要(angular.js:17806) 在范围$应用(angular.js:18080) 在完成(angular.js:12210) 在completeRequest (angular.js:12436) at XMLHttpRequest.requestLoaded(angular.js:12364)“ –