javascript - 返回对象内的 Ajax 数据

标签 javascript jquery ajax object

我在获取要在对象中使用的 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/

相关文章:

javascript - knockout validation - 如何显示单个错误消息

javascript - React/Redux 应用程序中组件的权限检查

c# - 文本更改事件后如何保持对文本框的关注

javascript - 如何中止 AJAX 调用?

javascript - 渲染前的 React 实例

javascript - 基于变量数组顺序执行异步方法

javascript - 选中所有复选框并启用按钮

jquery - Rails 3 AJAX 请求真实性 token 被忽略

jquery - 为什么 jQuery ajax 在这里发帖两次?

javascript - FormatCurrency 不是函数