Экспорт в csv(xls) данных из http.get с их обработкой


Всем доброго времени суток, сегодня решил оставить заметку о том как экспортировать данные полученные $http.get запросом AngularJS

Что понадобится:
AngularJS
ng-Csv
ngSanitize
Ваш API

Кнопка, вызывает нужную функцию

<button class="btn btn-default"
 ng-csv="export(id)"
 filename="yourfilename.csv"
 csv-header="['firstname', 'lastname']"
 field-separator=","
 decimal-separator=".">
 exportbtn
</button>

Функция экспорта

$scope.export = function(id){
    var arr = dataService.getList(id).then(function(data){
        var $items = [];
        _.each(_.flatten(data.posts), function(item){
            var $item = {};
            $item.firstname = item.post_meta.firstname;
            $item.lastname = item.post_meta.lastname;

            $items.push($item);
        });
        return $items;
    }, function(){});
    return arr;
}

Сервис для получения данных
Не забудьте добавить имя сервиса в контроллер

app.service('dataService', function ($http, $q) {
    var service = {};
    service.getList = getList;

    function getList(id){
        var q = $q.defer();

        var req = {
            method: 'GET',
            url: '/wp-json/app/v2/YOURMETHODGET/' + id
        }

        $http(req)
            .success(function(data) {
                q.resolve(data);
            })
            .error(function(error){
                q.reject(error);
            })

        return q.promise;
    };

    return service;
});