我在获取要在对象中使用的 Ajax 响应时遇到问题。
function cart(){
this.items = [];
this.addItem = function(item){
//sorts and adds items to this.items
}
this.retrieveCart = function(){
var itemArray = JSON.parse($.cookie('cartItems'));
var itemNumbers = [];
var outData = [];
for(var i in itemArray){
itemNumbers.push(i);
}
$.post('beta-category-ajax.html', {'get' : itemNumbers.join(",")},
function(data){
for(var i in data){
var currentItemNumber = data[i].I;
var quantity = itemArray[currentItemNumber];
data[i].Quantity = quantity;
outData.push(data[i]);
}
});
this.addItem(outData);
}
我希望能够在异步使用 Ajax 的同时运行 this.addItem(Array)
我看到了这个帖子jQuery AJAX Handling Problem但如果这适用于我,我就不是。
感谢大家提前提供的帮助:)
最佳答案
我不太清楚您在问什么,但似乎 this.addItem
无法按照当前编写代码的方式工作。 this
的值会在您传递给 $.post 的匿名函数的范围内发生变化。在 retrieveCart
中缓存对 this
的引用。
this.retrieveCart = function () {
var self = this;
...
$.post(..., function () {
...
self.addItem(outData);
});
}
关于javascript - 返回对象内的 Ajax 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15503397/