У меня есть модуль в другом файле, который должен выполнять мои запросы ajax для меня (это в ajaxCall.js), я пытаюсь добавить этот модуль в глобальное окно объект так, что я могу использовать его в другом файле с именем (корзинка-page.js), но я получаю сообщение об ошибке с указаниемКак я могу исправить свой шаблон модуля для работы
Uncaught TypeError: Cannot read property 'process' of undefined(…)
AjaxCall.js
"user strict";
window.ajaxCall = window.ajaxCall || {}
var ajaxCall = (function() {
var api = {
process: function (destinationUrl, dataToPost, callbackFunction) {
$.ajax({
url: destinationUrl,
data: dataToPost,
method: "POST",
dataType: "JSON",
success: function (data) {
if (element.length > 0) {
callbackFunction(data, element);
}
},
error: function (req, status, errorObj) {
console.log(status);
}
});
}
}
window.ajaxCall = api;
return api;
})();
Баскет-page.js
"use strict";
basket = basket || {};
var basket = (function (ajax) {
var api = {
init: function() {
$("#tblBasket").dataTable({
bFilter: false,
pageLength: 10,
paging: true,
autoWidth: true,
columns:
[
{ "orderDataType": "dom-text", type: "string" },
{ "orderDataType": "dom-text-numeric" },
null
],
fixedColumns: true
});
},
removeBasketProductRow: function (data, element) {
if (data === true) {
element.remove();
}
}
};
$("#btnRemoveBasketProduct").click(function() {
var product = $(this).closest("tr");
var productId = product.attr("id");
window.ajaxCall.process("/Products/RemoveBasketProduct", productId, api.removeBasketProductRow);
});
return api;
})(window);
$(document).ready(function() {
basket.init();
});
Почему вы делаете 'window.ajaxCall = api;', а затем возвращаете 'api' для IIFE? – empiric
И это '' use strict ";', кроме того, переменная 'element' в вашем' success' не определена – empiric
Вы уверены, что оба файла загружаются при попытке выполнить функцию? – empiric