NgTable使用API​​和groupBy使用全局过滤器

时间:2016-01-12 19:20:22

标签: angularjs ngtable

我对NgTable有困难,但我正在寻找的功能可能是对表格框架的限制。

我在getData中使用API​​调用,并且正在对数据进行分组(通过设置参数中的groupBy属性)。

我希望能够对数据使用全局过滤器,我似乎无法将其用于分组。除了他们不混合之外,还有两个例子:

分组:http://ng-table.com/#/grouping/demo-grouping-basic
全局过滤:http://ng-table.com/#/filtering/demo-api

有什么建议吗?

表声明/配置

$scope.tableNotesParams = new ngTableParams({
    page: 1,   // show first page
    count: 10,  // count per page: use total result set in this case,
    sorting: {
        created_at: 'desc'
    }
}, {
    groupBy: function( note ) {
        return moment( note.created_at ).format( 'YYYY' );
    },
    getData: function ( $defer, params ) {

        $scope.request.notes.state = 'started';
        $scope.request.notes.notesSpinner = true;

        var offset = params.count() * ( params.page() - 1 );

        // Default
        var urlQueryParams = {
            'email': member.accounts.email,
            'offset': offset,
            'limit': params.count() || 10
        };

        notesApiService.getNotes( urlQueryParams ).then( function ( results ) {

            $scope.notes = results.data;
            $scope.noteMembers = extractionService.getAllUniqueMembers( $scope.notes );

            // Get the range values, expecting value to be: items 1-10/655
            var noteHeaders      = results.headers();
            var notesRangeValues = noteHeaders['content-range'].match( /(\d{1,})/g );

            $scope.tableNotesMetaData = {
                offsetStart: notesRangeValues[0] || 0,
                offsetEnd  : notesRangeValues[1] || 0,
                totalCount : notesRangeValues[2] || 0
            };

            // Update parent controller count
            $scope.tabs.notes.count = notesRangeValues[2] || 0;

            // Update the total
            params.total( $scope.tableNotesMetaData.totalCount );


            var orderedData = params.sorting() ?
                              $filter('orderBy')($scope.notes, params.orderBy()) :
                              $scope.notes;


            $defer.resolve( orderedData );

            $scope.request.notes.state = 'completed';
            $scope.request.notes.notesSpinner = false;

        });

    }
});

修改

全局过滤器的过滤示例不对分组数据执行任何操作:

function applyGlobalSearch(){
  var term = self.globalSearchTerm;
  if (self.isInvertedSearch){
    term = "!" + term;
  }
  self.tableParams.filter({ $: term });
}

1 个答案:

答案 0 :(得分:0)

我认为在Set WshNetwork = WScript.CreateObject("WScript.Network") Set oDrives = WshNetwork.EnumNetworkDrives Set oPrinters = WshNetwork.EnumPrinterConnections WScript.Echo "Domain = " & WshNetwork.UserDomain WScript.Echo "Computer Name = " & WshNetwork.ComputerName WScript.Echo "User Name = " & WshNetwork.UserName WScript.Echo WScript.Echo "Network drive mappings:" For i = 0 to oDrives.Count - 1 Step 2 WScript.Echo "Drive " & oDrives.Item(i) & " = " & oDrives.Item(i+1) Next WScript.Echo WScript.Echo "Network printer mappings:" For i = 0 to oPrinters.Count - 1 Step 2 WScript.Echo "Port " & oPrinters.Item(i) & " = " & oPrinters.Item(i+1) Next - 函数中查询notesApiService.getNotes()是不合适的,但无论如何。由于我们没有使用HTML或JSBin,因此主要是猜测:

getData()