ResponseText из JavaScript Ajax Class в другом методе класса? - PullRequest
0 голосов
/ 24 января 2019

Я написал (на данный момент просто заурядный) класс Ajax в Javascript для получения запросов.Я хочу вызвать этот метод Ajax.get () из другого класса, который вставляет xhr.responseText в некоторый контент, такой как оповещение модального oder.К сожалению, я не могу решить проблему передачи этого responseText в функцию моего другого класса, поскольку ключевое слово this имеет неправильную область видимости, а переменная xhr недоступна извне функции.

Пока у меня естьвсе испортил, но я не смог найти способ решить мою проблему.

class Ajax
{
    static get ({url, target, success = () => {})
    {
        let xhr = new XMLHttpRequest();
        xhr.open('GET', url);
        xhr.onload = function ()
        {
            if ( this.status == 200 )
            {
                success(this.responseText);
                // do something yet undefined with the responseText
            }
        }
        xhr.send();
    }
}
class Modal
{
    static createModal (body)
    { 
        // creates a Modal with the value of "body", e.g.
        alert(body);
    }

    static getModal( )
    {
        let modalBody = Ajax.get
        ({
            url : 'text.txt',
            success : Modal.createModal(/*???*/);
        });
    }
}
</script>
<button onclick="Modal.getModal()">Get dnamic Modal</button>

Я хочу, чтобы модальный (simplefied: alert) имел текст из xhr Ajax.get ().ответ.Поэтому мне нужно передать неизвестную переменную или сделать что-нибудь еще.Ближайший успех до сих пор был «неопределен» (т. Е. Нет синтаксиса / ошибки синтаксического анализа).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...