2015-08-24 37 views
2

在AngularJS项目中,我使用智能表模块和asafdav/ng-csv将数据从智能表导出为CSV。从AngularJS的智能表导出数据

我成功地将智能表中的数据导出到csv,但只能从第一页导出。我从$scope.displayedCollection变量中导出数据(与st表指令中的相同)。在这个变量中,与表中的数据非常相似,但只能从第一页开始。你知道我如何导出整个数据(从智能表中进行排序和过滤)。我认为在将数据分解到页面之前,我应该“插入”智能表格模块。但是如何?

回答

1

我创建了自己的指令进行分页之前可以访问数据表:

angular.module('smart-table') 
.directive('stFilteredCollection', function() { 
    return { 
     restrict: 'A', 
     require: '^stTable', 
     scope: { 
     stFilteredCollection: '=' 
     }, 
     controller: 'stTableController', 
     link: function (scope, element, attr, ctrl) { 

     scope.$watch(function() { 
      return ctrl.getFilteredCollection(); 
     }, function (newValue, oldValue) { 
      scope.stFilteredCollection = ctrl.getFilteredCollection(); 
     }); 
     } 
    }; 
    }); 

要使用它,请添加st-filtered-collection属性与变量,它从表分页前设置的数据名称:

<table st-table="..." st-safe-src="..." st-filtered-collection="filteredCollection"> 
    ... 
</table> 

从现在控制器中可以使用$scope.filteredCollection变量。