我有一个在status.js中处理Ajax调用的函数:
window.APPLICATION = window.APPLICATION || {};
window.APPLICATION = {
getStatus: function(callingScope) {
var _this = this;
var getStatus = $.ajax({
type: "POST",
url: "/php/status.php",
data: {
"action": "mystatus"
}
});
getStatus.done(function(Response) {
if (Response.data != undefined) {
_this.cache.statusdata = {
userstatus: Response.data
};
} else if (Response.error != undefined) {
console.log('status data request error...');
}
callingScope.ajaxLoaded++;
}),
getStatus.fail(function(jqXHR, textStatus) {
console.log("user save form fail - an error occurred: (" + textStatus + ").");
});
},
}
在我的user.js中,我称之为:
window.APPLICATION.USER.ajaxLoaded = 0;
window.APPLICATION.getStatus(window.APPLICATION.USER);
我需要这个ajaxLoaded变量计数器,因为我有其他Ajax调用。需要它来确定是否所有呼叫都已完成。
但是,我在控制台中遇到以下错误:
如何解决?
答案 0 :(得分:0)
window.APPLICATION.USER.ajaxLoaded = 0;
这一行给出错误。
这是因为,USER
未定义。
在定义属性之前,您需要先将USER
声明为对象。
所以
window.APPLICATION.USER = {};
然后
window.APPLICATION.USER.ajaxLoaded = 0; // this will work
在回调中,你试图访问未定义的window.APPLICATION.USER对象,因此callingScope发出错误,指出它未定义