我有一個不同的文件中的模塊,應該基本上執行我對我的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
而且它是''嚴格使用';',而且''成功'中的變量'元素'是未定義的 – empiric
您確定在嘗試執行函數時加載了兩個文件嗎? – empiric