Recuperando dados após o sucesso após o angularjs do controlador separado

Estou escrevendo um serviço simples que carrega um arquivo e o publica em um controlador Spring. O controlador manipula esses dados e retorna vários objetos como JSON. Estou trabalhando com o seguinte serviço Angular:

myApp.service('fileUpload', [ '$http', function($http) {
        this.uploadFileToUrl = function(file, uploadUrl) {
            var fd = new FormData();
            fd.append('file', file);

            $http.post(uploadUrl, fd, {
                transformRequest : angular.identity,
                headers : {
                    'Content-Type' : undefined
                }
            })

            .success(function(data) {
                console.log("upload successful")
                //console.log(data)
                namesandaddresses = data;
            })

            .error(function() {
                console.log("upload error")
            });
        }
    } ]);

Eu tenho um controlador separado no código que quero usar para postar esses dados (nomes e endereços) na exibição e usar ng-repeat para exibir as informações. Minha luta agora é extrair os dados dessa função de sucesso, sem falar no próprio serviço. Eu tentei criar um var nomes e endereços globais fora do serviço para que eu possa acessá-lo de outro controlador, mas ele aparece indefinido.

Na minha pesquisa, descobri que a maneira apropriada de fazer isso é usar uma função de retorno de chamada, mas minhas tentativas de escrever isso no serviço quebram a função básica. Antes de voltar para redesenhar este serviço ou reconsiderar minha abordagem, eu queria postar isso e ver se a comunidade stackoverflow poderia me ajudar a ajustar esse serviço, para que eu possa postar esse JSON para a exibição com êxito.

Alguém me ajudaria?

questionAnswers(1)

yourAnswerToTheQuestion