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 - 在另一个模板的元素上引发单击事件

javascript - React 卸载 30k+ 组件很慢

javascript - 有没有办法过滤从 AJAX 查询创建的数组?

java - 并发远程数据处理

javascript - 使用 React.js 时的一般结构

javascript - 如何将事件绑定(bind)到动态创建的主干中的 'el'?

javascript - 如何使用 SPServices 和 SharePoint 2010 搜索和替换列表项名称?

javascript - 将当前选项卡的 URL 发送到插件内容

asynchronous - log4j2 : Async logger is NOT starting

php - 如何在 PHP 中实现高性能异步套接字服务器应用程序?