2012-08-30 111 views
0

刪除一個視圖我有一個觀點,像這樣:使用骨幹

(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我收到以下錯誤:

Uncaught RangeError: Maximum call stack size exceeded

回答

3

這是因爲在你的remove方法你的電話ing this.remove()其中調用remove()其中調用remove()其中調用remove() ...

+0

哦,廢話!好點,將我的方法更改爲'removeView' – CallumVass

+0

您可以嘗試使用'this.constructor .__ super __。remove.call(this)'。 –

+2

一個美觀的提示,但我喜歡命名刪除視圖和事件'清理'的功能。只是我2美分 – jakee