저는 본질적으로 저의 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;'하고 IIFE에 대해 'api'를 반환합니까? – empiric
그리고''use strict ';','success'의'element' 변수가 정의되지 않았습니다 – empiric
함수를 실행하려고 할 때 두 파일이 모두로드 되었습니까? – empiric