我有一個視圖DashboardView
,它實例化了多個WidgetView
。每個小部件都需要有自己的事件綁定。到目前爲止,我所知道的,當視圖渲染並添加到父視圖,即這些綁定迷路:Backbone.js嵌套視圖中的事件
class DashboardView extends Backbone.View
constructor: ->
context = @
_.each @collection, (w)->
dv = new app.WidgetView(model: w)
context.$el.append(dv.render())
class WidgetView extends Backbone.View
events:
"click .config" : "config_widget"
render: ->
_.template($("#widget-template").html(), @model)
這樣做,這樣,小部件的.config
元素上的點擊事件現在丟失。有沒有更好的方法將嵌套視圖混合到父級中,同時確保子視圖上的事件處理程序正確導入?
我遇到過這個問題的一種解決方法是this article。這看起來是正確的,但我很好奇,如果有更好的解決方法。
這正是我所尋找的。謝謝! – picardo 2012-03-03 23:03:36
你可以通過使用['(w)=>'](http://coffeescript.org/#fat_arrow)來避免'context'的東西。 '@ collection'應該是Underscore-ified,所以'@collection.each(w)=>'是另一種選擇。 – 2012-03-04 01:16:29
@mu酷':)'不知道胖箭頭。 – 2012-03-04 02:23:15