javascript - 获取集合后不会调用集合重置上的 listenTo

标签 javascript backbone.js requirejs js-amd

下面是我的 View 初始化函数,它在初始化时应该接收模块名称,以便从集合中获取正确的数据。

问题是:

  1. Listento 在获取集合后没有重定向到 render() 方法,它还在控制台上给我一个错误

TypeError: e is undefined

我在下面的代码中犯了什么错误?

    initialize: function() {          

     var that = this;
        if(this.options.module === 'questions'){                  

            require([
                'app/collections/questions'
            ], function(QuestionsCollection){                   
                var moduleCollection = new QuestionsCollection();
                that.collection = moduleCollection;
                moduleCollection.fetch({
                    reset: true, 
                    success: function(){},
                    error: function(){}
                    });                                                                        
            });                

        }

        this.listenTo(this.collection, 'reset', this.render);
        this.listenTo(Backbone, 'close:Home', this.close);
    },

最佳答案

我认为这是一个范围问题,其中 require 模块处于闭包中。尝试以下操作:

initialize: function() {          

 var that = this;
    if(this.options.module === 'questions'){                  

        require([
            'app/collections/questions'
        ], function(QuestionsCollection){                   
            var moduleCollection = new QuestionsCollection();
            moduleCollection.fetch({
                reset: true, 
                success: function(){},
                error: function(){}
                });
            that.listenTo(moduleCollection, 'reset', that.render);                                                    
        });                
    }

    this.listenTo(Backbone, 'close:Home', this.close);  
},

关于javascript - 获取集合后不会调用集合重置上的 listenTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21662733/

相关文章:

javascript - backbone.js 事件没有触发,我不明白为什么

javascript - Gingerbread 默认网络浏览器多次点击问题

javascript - 三.js TypeError : 'global' is undefined in Firefox

javascript - 获取 html 值列表并将它们填充到 backbone-requirejs 应用程序中的最佳方法

javascript - Jquery:从字符串中获取标题和正文标签内容

javascript - 当主干 View 被渲染时得到通知

javascript - JavaScript 中的 map 和过滤功能

JavaScript 错误,根据其他复选框的结果更新复选框/按钮

javascript - 主干点击事件在 Collection View 中不起作用

javascript - 为什么我的backbone.Collection只有一个元素? (使用 Require、TypeScript、Jasmine)