0

我创建了一个动态表,如下所示

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);

我也看到只创建了表元素,但表是空的。有任何想法吗???

4

1 回答 1

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);
于 2013-08-29T17:22:13.993 回答