在 AngularJS 项目中,我使用智能表模块和 asafdav/ng-csv 将数据从智能表导出到 CSV。
我成功地将数据从智能表导出到 csv,但只能从第一页导出。我从 $scope.displayedCollection
变量导出数据(与 st-table 指令中的相同)。此变量中的数据与表中的数据完全相同,但仅来自第一页。您知道如何导出整个数据(通过智能表进行排序和过滤)。我认为我应该在将数据拆分到页面之前“插入”到智能表模块。但是如何呢?
最佳答案
我创建了自己的指令以在分页之前访问表中的数据:
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>
从现在开始,您可以在 Controller 中使用 $scope.filteredCollection
变量。
关于angularjs - 从 AngularJS 中的智能表导出数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32175813/