我有一个简单的骨干应用程序,我正在用于测试。一切似乎都已到位,我没有收到任何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;
}
});
答案 0 :(得分:2)
在传递给_.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...