Backbone.js 使用主干删除视图
我有这样的看法:Backbone.js 使用主干删除视图,backbone.js,Backbone.js,我有这样的看法: (function(views) { views.FilterView = Backbone.View.extend({ tagName: 'div', events: { 'click a.remove': 'remove' }, template: _.template($("#filterViewTemplate").html()), render: func
(function(views) {
views.FilterView = Backbone.View.extend({
tagName: 'div',
events: {
'click a.remove': 'remove'
},
template: _.template($("#filterViewTemplate").html()),
render: function() {
this.$el.html(this.template());
return this;
},
remove: function (e) {
this.remove();
this.unbind();
}
});
})(app.views);
它的模板是:
<script type="text/html" id="filterViewTemplate">
<select class="filterByOption">
<option value="Account">Account</option>
<option value="Owner">Owner</option>
</select>
<span class="cell sort">
<input class="filterString cell" type="text" />
</span>
<a href="#" class="btn small remove">Remove</a>
</script>
账户
所有者
但是当我点击Remove
时,我得到以下错误:
未捕获范围错误:超过了最大调用堆栈大小
这是因为在remove
方法中调用this.remove()
哪个调用remove()
哪个调用remove()
哪个调用remove()这是因为在你的remove
方法中,你调用this.remove()
哪个调用remove()
哪个调用remove()
哪个调用remove()
。你可以尝试this.constructor.\uu super\uuu.remove.call(this)
。一个装饰性的技巧,但是我想命名删除视图和事件的函数cleanup
。就我的2个世纪,你可以尝试this.constructor.\uu super\uuuu.remove.call(this)
。这是一个装饰性的提示,但我想给移除视图和事件的函数命名cleanup
。只要我的2美分