不要发射事件

时间:2013-02-22 15:35:12

标签: javascript backbone.js

我正在尝试执行我的视图的渲染方法,但由于某种原因,它告诉我Uncaught TypeError: Cannot call method 'listenTo' of undefined,不太清楚为什么。

var App = Backbone.View.extend({
    current_election_index: 0,
    el: 'body',
    initialize: function() {
        elections = new Elections();
        _.bindAll(this, 'render');
        this.listenTo(this, 'change', this.render);
        elections.fetch();
/*      elections.fetch({
            success: function(test) {
                console.warn(this.App.render());
                this.render();
            }*/

        // });
    },

    render: function () {
        console.log('this is the render method');
        var view = new ElectionView({model: elections.at(0)})
    }
})

1 个答案:

答案 0 :(得分:0)

你想要做的是听elections。因此,而不是倾听this.modelthis

this.listenTo(elections, 'reset', this.render);

当集合的全部内容被替换时,会在集合上触发reset。当模型的属性发生变化时,模型会触发change事件。有关详细信息,请参阅Backbone Catalogue of Events

如果您想在属于elections集合的每个模型发生更改时更新视图,请务必在每个ElectionView子视图中执行此操作,而不是App视图。