我有一个用于测试的简单主干应用程序。一切似乎都已就绪,我没有收到任何JS错误,但我没有收到服务器要求在页面上显示的内容。
我正试图将一些LI附加到UL。我将骨干模型和JSON表单记录到控制台,这样我就可以清楚地看到数据以JSON的形式从服务器返回。
对我在(极其简单的)主干实现中缺少什么有什么想法吗?
点击此处查看:http://backbonepeople.apphb.com/
AppView = Backbone.View.extend({
el: '#people',
initialize: function () {
this.model.bind("reset", this.render, this);
},
render: function (eventName) {
_.each(this.model.models, function (person) {
console.log(person);
var view = new PersonView({ model: person });
$(this.el).append(view.render().el);
});
return this;
}
});
在传递给_.each的函数中,this
没有绑定到您的视图,这意味着this.el
没有定义。尝试
_.each(this.model.models, function (person) {
var view = new PersonView({ model: person });
$(this.el).append(view.render().el);
}, this);
或
var self=this;
_.each(this.model.models, function (person) {
var view = new PersonView({ model: person });
$(self.el).append(view.render().el);
});
顺便说一下,_.each(this.model.models, function...
可以写成this.model.each(function...