JQuery сообщение об ошибке отправки объекта с 2 методами - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь представить ООП в своем javascript, и у меня возникает ошибка при попытке отправить объект (класс) двумя методами с помощью Jquery $ .post.Странная вещь в том, что когда я удаляю один из методов (остался только один), у меня нет ошибки.

Определение объекта:

    function Project(project, date) {
    this.id = 0;
    this.project_id = project;
    this.year = date;
    this.percent = 0;
    this.sales = 0;
    this.purchase = 0;
    this.user_update = 'Cubic';
    this.action = '';
}

Методы (первый - тот, которыйвызвать конфликт):

Project.prototype.refreshProject = function () {
    $j("[data-project='" + this.project_id + "'][data-year='" + this.year + "'].pl-sales").text(formatNumber(this.sales));
    $j("[data-project='" + this.project_id + "'][data-year='" + this.year + "'].pl-purchases").text(formatNumber(this.purchase));
    $j("[data-project='" + this.project_id + "'][data-year='" + this.year + "'].pl-margen").text(formatNumber(this.sales - this.purchase));
    calcTotales();
}

Project.prototype.getCorrector = function () {
    corrector = [];
    yearIndex = periods.indexOf(this.year) + 1;
    corrector[0] = stringtoNum($j("[data-rowproject='" + this.project_id + "'].row-sales").text());
    corrector[1] = stringtoNum($j("[data-rowproject='" + this.project_id + "'].row-purchases").text());

    for (var i = yearIndex; i < periods.length; i++) {
        corrector[0] -= stringtoNum($j("[data-project='" + this.project_id + "'][data-year='" + periods[i] + "'].pl-sales").text());
        corrector[1] -= stringtoNum($j("[data-project='" + this.project_id + "'][data-year='" + periods[i] + "'].pl-purchases").text());
    }
    for (var i = yearIndex; i > 1; i--) {
        // modificar year - 1
    }
    return corrector;
}

секция сообщения:

recordper = new Project(parseInt($j(this).data('project')), parseInt($j(this).data('year')));
......
$j.post("pl_agency/ajax_request.php",recordper, function (respuesta, status) {
                console.log(respuesta + ' : ' + status);
});
recordper.refreshProject();

ошибка: объект (recordper) не определен, когда refreshProject () вызывается

спасибоза вашу помощь и извините мой английский

1 Ответ

0 голосов
/ 23 февраля 2019

ОК ... Я нашел ярлык.Я не знаю, есть ли более разумный способ сделать это, но это работает для меня.

Я передаю все свойства (не методы) новому объекту и отправляю это в $ .post

newObj = {
    id : recordper.id,
    project_id : recordper.project_id,
    .......       
};
$j.post("pl_agency/ajax_request.php",newObj, function (respuesta, status) {
...... }

Не очень горжусь, поскольку мне нравится минимизировать код, но это работает.Все еще открыты для лучших решений.Tx

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