尝试在视图中触发事件,但似乎没有触发。此视图从另一个视图中运行,因此不确定事件是否未正确设置。
var ListRow = Backbone.View.extend(
{
events:
{
'click .button.delete': 'destroy'
},
initialize: function()
{
_.bindAll(this, 'render', 'remove');
},
render: function()
{
this.el = _.template($('#tpl-sTableList_' + key + 'Row').html());
return this;
},
destroy: function()
{
console.log('remove')
}
});
答案 0 :(得分:3)
您正在覆盖this.el
,而您想要做的是
render: function ()
{
var tpl = _.template($('#tpl-sTableList_' + key + 'Row').html());
this.$el.empty().html(tpl);
// or if you prefer the old way
// $(this.el).empty().html(tpl);
return this;
},
如果这导致你的DOM表示有问题,周围有一个额外的包裹元素,请尝试这样做:
render: function ()
{
var tpl = _.template($('#tpl-sTableList_' + key + 'Row').html());
this.setElement(tpl, true); // this is a Backbone helper
return this;
},