0

我正在尝试执行我的视图的渲染方法,但由于某种原因它告诉我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)})
    }
})
4

1 回答 1

0

你想做的就是听elections。所以与其听this.modelor this

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

reset当集合的全部内容已被替换时”在集合上触发。“change当模型的属性发生变化时”在模型上触发事件。有关详细信息,请参阅事件的主干目录

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

于 2013-02-22T17:16:50.223 回答