У меня проблема с $.ajax
, $.when
и apply
. У меня есть конструктор: запрос Аякса не срабатывает, когда он должен быть: http://plnkr.co/edit/Ul9d8tB7BHoZyHzzQQyB?p=preview (см консоль)
function updateGeneralTerm() {
return {
id: "GeneralCondition",
ajax: function() {
return $.ajax({
type: 'POST',
url: "@Url.Action("UpdateGeneralTerms", "Agreements")",
data: $("#GeneralConditions").serialize()
})
}
}
}
//I inject it in my custom function
function CustomFunction(arr) {
let arrOfAjax = arr.map(function (obj) {
return obj.ajax
});
$.when.apply(null, arrOfAjax);
}
CustomFunction([new updateGeneralTerm()];
В моей CustomFunction, я проверяю другие вещи, как это делает изменилась форма .. и т. д. Однако это не похоже на мою проблему. Ничего не произошло.
В будущем у меня может быть определенный термин, который я бы хотел обновить, только если формы были изменены.
Моя проблема: ajax не запрашивается $ .when(). Если я перехожу к возврату obj.ajax()
, запрос ajax запускается там напрямую не $ .when(). Мне бы хотелось $ .when() обрабатывать все запросы ajax.
http://plnkr.co/edit/Ul9d8tB7BHoZyHzzQQyB?p=preview
Это потому, что вы используете ссылку в '' AJAX) функции (. Вы на самом деле не называете это. Попробуйте использовать 'return obj.ajax();'. Немного странно, как вы доказываете объект, возвращенный из 'updateGeneralTerm()' в 'CustomFunction()' внутри массива. Предположительно, это потому, что в вашем производственном коде у вас будет предварительно заполненный массив ...? –
@RoryMcCrossan => не работает. Если я делаю obj.ajax(), активируется $ .ajax() ... Я уверен, потому что я прокомментировал $ .when (...), и он достиг метода контроллера. – Stefdelec
'Если я делаю obj.ajax(), активируется $ .ajax(). Это то, что я предложил, и чего вы пытаетесь достичь, не так ли? Также дайте больше информации, чем просто «это не работает». Что не работает? Где это не удается? Вы проверили наличие ошибок в консоли или вкладке сети, чтобы увидеть ответный текст? –