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

確認したところ、行が適切に構築されていることがわかりましたが、次の行が機能していません

$(this.el).append(row.el);

また、テーブル要素のみが作成されているのを見てきましたが、テーブルは空です。何か案は???

4

1 に答える 1

2

this.options.collections.each の iterator 関数内の「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 に答える