@faleaksey

Правильно использовать ajax запрос в модели?

Всем привет! хотелось бы получить code review данной модели!
На проекте используется mvc и в модели происходит увеличение/уменьшение значения в методах и отправка ajax запроса с этим значением, а далее запись полученного ответа с сервера обратно в конструктор модели, да бы потом манипулировать ими в дальнейшем!

class TestModel {
    constructor() {
        super();
        this._result = {
            count: 1,
            product: 0,
            allPrice: 0
        };
    }

    getItems() {
        return this._result;
    }

    addItem(result) {
        const params = {
            evt: 'countAdd',
            result: result
        }
        // увеличиваем count на 1
        this._result.count = result.count + 1;
        // и передаём его в ajax запрос
        this.getAjax(this._result.count, params);
    }

    remItem(result) {
        const params = {
            evt: 'countRemove',
            result: result
        }
        this._result.count = result.count - 1;
        this.getAjax(this._result.count, params);
    }

    getAjax(count, params) {
        const _this = this;
        $.ajax({
            url: 'send-test.php',
            type: "POST",
            dataType: "html",
            data: {'count': count},
            success: function (response) {
                // получаем ответ и результат записываем в конструктор модели
                // от куда потом через метод getItems получаем данные для вывода во View
                var result = $.parseJSON(response);
                _this._result.all = result.allPrice;
                setTimeout(() => {
                    _this.emit(params.evt, params.result);
                }, 100);
            },
            error: function (response) {
               console.log('fail!');
            }
        });
    }
}
export default TestModel;
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 1
Логически с виду верно. Модель отвечает за работу с данными

Раз у вас mvc в js могу предложить вместо jquery использовать axios
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
16 апр. 2024, в 12:48
1500 руб./за проект
16 апр. 2024, в 12:30
12000 руб./за проект
16 апр. 2024, в 12:13
10000 руб./за проект