我有一个动态表,如下所示
app.View.FriendRequestTableView = Backbone.View.extend({
tagName: 'table',
className: 'table table-hover',
initialize : function(options) {
this.options = options;
this.render();
},
render: function() {
$(this.el).empty();
this.options.collection.each(function(user){
var row = new app.View.FriendRequestRowView({model:user});
$(this.el).append(row.el);
});
return $(this.el);
}
});
我检查过,我看到Row已正确构建,但以下行无法正常工作
$(this.el).append(row.el);
我也看到只创建了表元素,但表是空的。 任何想法???
答案 0 :(得分:2)
如果我没有弄错的话,this.options.collections.each的迭代器函数中对“this”的引用可能是对window的引用。创建对迭代器函数可以使用的视图的显式引用可以解决您的问题。
$(this.el).empty();
var _this = this;
this.options.collection.each(function(user){
var row = new app.View.FriendRequestRowView({model:user});
$(_this.el).append(row.el);
});
return $(this.el);