表不在主干中呈现

时间:2013-08-29 16:11:09

标签: backbone.js backbone-views backbone-events

我有一个动态表,如下所示

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

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

1 个答案:

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