Angularjs 使用函数筛选表

Angularjs 使用函数筛选表,angularjs,ngtable,Angularjs,Ngtable,我有一个带有show filter=true的表。其中一个列组名显示一个字符串,该字符串是另一个列组的函数。问题是我不能按组名筛选,因为它是一个派生列。如何按组名筛选 HTML: 您只需在控制器中进行分组即可省去麻烦 我已经使用map函数对设置组值进行了验证,然后将其显示为普通文本过滤器 map函数如下所示 $scope.data = [{ uid: 'User 1', nm: 'Name 1', ugr: 1 }, {

我有一个带有show filter=true的表。其中一个列组名显示一个字符串,该字符串是另一个列组的函数。问题是我不能按组名筛选,因为它是一个派生列。如何按组名筛选

HTML:


您只需在控制器中进行分组即可省去麻烦

我已经使用map函数对设置组值进行了验证,然后将其显示为普通文本过滤器

map函数如下所示

$scope.data = [{
          uid: 'User 1',
          nm: 'Name 1',
          ugr: 1
      }, {
          uid: 'User 2',
          nm: 'Name 2',
          ugr: 2
      }, {
          uid: 'User 3',
          nm: 'Name 3',
          ugr: 2
      }].map(function(x){x['group'] = x.ugr === 1 ? 'AAA' : 'BBB';return x;});
下面是一个相同的演示,让我知道这是否有助于你

var app = angular.module('app', ['ngTable']);

app.controller('myCtl', function($scope, NgTableParams) {

      $scope.data = [{
          uid: 'User 1',
          nm: 'Name 1',
          ugr: 1
      }, {
          uid: 'User 2',
          nm: 'Name 2',
          ugr: 2
      }, {
          uid: 'User 3',
          nm: 'Name 3',
          ugr: 2
      }];


      $scope.groupName = function(group){
          if (group==1)  
              return 'AAA';
          else
              return 'BBB';
      };


      $scope.tableParams = new NgTableParams({
          count: 5
      }, {
          data: $scope.data
      });

});
$scope.data = [{
          uid: 'User 1',
          nm: 'Name 1',
          ugr: 1
      }, {
          uid: 'User 2',
          nm: 'Name 2',
          ugr: 2
      }, {
          uid: 'User 3',
          nm: 'Name 3',
          ugr: 2
      }].map(function(x){x['group'] = x.ugr === 1 ? 'AAA' : 'BBB';return x;});