2015-06-10 3 views
2

Я работаю над веб-проектом. Он использует angularjs для клиентов. Одним из требований является отображение некоторых данных в сетке и предоставление параметров для экспорта данных в файл csv.Выберите определенные столбцы в angularjs

Я пытаюсь использовать модуль ngCsv для этой функции. Я показываю данные в сетке из коллекции. Во время отображения у меня есть контроль над тем, какие столбцы я могу отобразить. Но при экспорте данных в CSV все, что я могу использовать, это сбор. Когда я использую коллекцию, она экспортирует все столбцы из коллекции в экспортированные файлы csv. Но я хочу экспортировать только определенные столбцы. Может быть способ выбрать только определенные столбцы из коллекции в angularjs, но я не мог найти способ сделать это.

Это функция, которая загружает приложения на контроллере

function loadApps() 
{ 
    appService.getApps().then(function (result) { 
    vm.assets = result.data.items;}); 
} 

Эта функция используется для экспорта приложений

vm.exportApps = function() { 
     return vm.apps.filter(function (a) { 
      return a.selected; 
     }); 
    } 

Это от HTML

<button class="btn btn-sm btn-primary" ng-csv="vm.exportApps" filename="SelectedAppsList.csv">Export Apps </button> 

Может кто-нибудь что я могу сделать, чтобы просто выбрать конкретные столбцы для экспорта?

ответ

2

Вы можете использовать csv-column-order в вашем html-коде.

<button class="btn btn-sm btn-primary" ng-csv="vm.exportApps" csv-column-order="vm.columns" filename="SelectedAppsList.csv">Export Apps </button> 

и указать, какие столбцы вам нужно

vm.columns = function() { 
    return ['column1', 'column2', 'column3']; 
}; 

они из вашего массива объектов

vm.apps = [{column1:10, column2:12, column3:13}, {column1:14, column2:15, column3:16}] 
+0

Использование CSV-столбцов порядка указать, какие столбцы экспортируются работали для меня. Я использовал его в сочетании с csv-header для определения имен для выбранных столбцов. Благодаря! Это должно быть в документации. – shanzilla

Смежные вопросы