Переменная внутри $http не отражает изменения вне блока

Я пишу веб-приложение в Angular, этот фрагмент кода предназначен для получения тестовых XML-данных в виде текста с сервера. Я использую службу Angular $http для отправки запроса GET с сервера. Переменная 'xmlData' изменяется внутри блока $http, но вне этого блока ее значение остается значением по умолчанию. Вот код:

this.getData = function() {
        var xmlData = "Default";
        var xmlDoc;
        // send an http GET request for the XML text data

        $http.get('http://localhost:1337/testXML.txt').success(function(data) {
            xmlData = data;
            if (xmlData == null) {
                alert("Data Error Occurred");
            }
        // here, 'xmlData' contains the correct information.
        }).
        error(function() {
            alert("HTTP Error Occurred");
        });

        // once the above $http block ends, the xmlData has the default value.          
        return xmlData;
}

Так это просто глупая проблема масштаба? Или я неправильно использую службу Angular $http? Спасибо!


person Emma    schedule 11.07.2013    source источник


Ответы (1)