バックボーンビューをモデルではなくコレクションにバインドするにはどうすればよいですか?モデルでコレクションをラップする必要がありますか?コレクションのバックボーンビューを作成する
私はバックボーンモデルClientおよびこれらと呼ばれるクライアント
Client = Backbone.Model.extend({
defaults: {
Name: ''
}
});
Clients = Backbone.Collection.extend({
model: Client,
url: 'Clients'
});
とビュー
var ClientListView = Backbone.View.extend({
template: _.template($("#clients-template").html()),
el: $('#clientlist'),
initialize: function() {
_.bindAll(this, 'render');
this.collection = new Clients();
},
render: function(event){
$(this.el).html(this.template({ this.collection.toJSON()));
return this;
}
});
のコレクションを持っている場合は
はその後、私は、アンダースコアテンプレート内の各クライアントの要素にアクセスすることはできません。しかし、このようなコレクションをラップすると、
$(this.el).html(this.template({ clients: this.collection.toJSON() }));
となります。これは正しいことでしょうか?私はこれが一般的なシナリオであると予想しますが、私はそれについての例を見つけることができません、私は間違った方法についてそれを行っていますか?
最後の例のinitializeメソッドの先頭に 'var that = this;'が必要ですか? – dubilla
@dubillaいいえ、バックボーンは、プロキシされたアンダースコア方式のコンテキストを「this」に設定します。 – EleventyOne
'this._donutViews = [];'にアンダースコア文字があるのはなぜですか? – fortuneRice