我正在尝试执行我的视图的渲染方法,但由于某种原因,它告诉我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)})
}
})
答案 0 :(得分:0)
你想要做的是听elections
。因此,而不是倾听this.model
或this
,
this.listenTo(elections, 'reset', this.render);
当集合的全部内容被替换时,会在集合上触发reset
。当模型的属性发生变化时,模型会触发change
事件。有关详细信息,请参阅Backbone Catalogue of Events。
如果您想在属于elections
集合的每个模型发生更改时更新视图,请务必在每个ElectionView
子视图中执行此操作,而不是App
视图。