我有一组模型,我希望在表格视图中呈现.每个模型应该由表中的单个行表示,并且该行应该使用模板生成.我应该能够将事件处理程序附加到该行(例如单击),在事件警报时,可以提供有关与该行关联的模型的一些特定信息.
我看到类似事情的常见方法是将每一行分解为它自己的视图,并且有一个父视图(在本例中可以说是表格)使用行视图来生成要包含在代码中的html .但是,我无法弄清楚它如何与模板一起使用.
在这种情况下,我无法将事件专门附加到RowView,因为它没有引用dom元素(this.el对于主干),它只返回一个字符串.如何使用模板获得最大容量,我怎样才能达到我的目的?
问题不是关于事件,模板或使用嵌套视图,而是关于使用Backbone实现这种输出的正确方法.
示例代码(也在小提琴中):
/** View representing a table */
var TableView = Backbone.View.extend({
tagName: 'table',
render: function() {
var rows = _.map(this.collection.models, function(p) {
return new RowView({model: p}).render();
});
$('body').html(this.$el.html(rows.join('')));
}
});
/** View representing a row of that table */
var RowView = Backbone.View.extend({
render: function() {
// imagine this is going through a template, but for now
// lets just return straight html.
return '<tr>' +
'<td>' + this.model.get('name') + '</td>' …Run Code Online (Sandbox Code Playgroud)