javascript - 获取结果未定义(Backbone.js)

标签 javascript asynchronous backbone.js callback

var ListView = Backbone.View.extend({
    el: $('hello'),
    initialize: function() {
        var stuff = new FieldCollection();
        var output;
        stuff.parse();
        stuff.fetch({
            success: function (collection, response) {
                console.log(response);
                output=response;
                return response;
             }
        });
        this.render(output);
   },
   render:function(output){
        console.log(output);
        $(this.el).append("<button id='add'>hiii</button>");
        $(this.el).append("<button id='removeAll'>Remove all list item</button>");
    }
});

在这里,我试图捕获 output 变量中的响应值...但它出现“未定义”。我有什么错误的想法吗?

最佳答案

fetch 方法是异步的,因此 output 变量在您使用它时尚未被分配。尝试将 render 调用放入成功回调中:

var self = this;
stuff.fetch({
        success: function (collection, response) {
            console.log(response);
            output=response;
            self.render(output);
            return response;
         }
    });

关于javascript - 获取结果未定义(Backbone.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12067606/

相关文章:

javascript - 如何异步加载 2 个 Javascript 文件并一个接一个地运行?

javascript - CRM 2011 设置表单字段值但显示保持空白

javascript - 将键值对象转换为仅值数组

c++ - 等到事件发生

c++ - grpc c++中的异步模型

javascript - 我们如何将数据发送到 Node js中与数据库调用异步的局部变量

javascript - 如何在按钮组中输出变量以影响 Angular.js 和 Html 中的下拉结果

javascript - Backbone.js 的延迟 JSON 响应

javascript - 使用 require.js 时未加载 jquery

javascript - Backbone 集合 sortBy