AngularJS - acceder a los encabezados http

Estoy intentando acceder a los encabezados http en mi controlador angular pero me estoy volviendo indefinido. Además, puedo ver la respuesta del encabezado en mi servicio angular que no se refleja en mi controlador. ¿Puede alguien decirme lo que me estoy perdiendo? Por favor, consulte el siguiente código:

Servicio:

cmApp.service('supplierService', function ($http, $q) {
    this.getSuppliers = function (orderByColumn, skipRows, takeRows) {
        var deferred = $q.defer();
        $http({
            method: 'GET',
            url: 'api/supplier',
            params: { orderBy: orderByColumn, skip: skipRows, take: takeRows },
            timeout: 30000, 
            cache: false
        }).
        success(function (data, status, headers, config) {
            // any required additional processing here            
            deferred.resolve(data, status, headers, config);            
        }).
        error(function (data, status) {
            deferred.reject(data, status, headers, config);
        });
        return deferred.promise;        
    }

Controlador:

   supplierService.getSuppliers($scope.orderby, $scope.skip, $scope.take)
        .then(function (data, status, headers, config) {
            **//getting undefined here.**
            $scope.totalRecords = parseInt(headers('X-TotalRowCount'));                
            $scope.suppliers = data;
        }, function (error) {
            // error handling here
        });

Respuestas a la pregunta(4)

Su respuesta a la pregunta