我有一个不同的文件中的模块,应该基本上执行我对我的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