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
要素のクリックイベントは、現在失われています。子ビューのイベントハンドラが正しくチャネリングされていることを確認しながら、ネストされたビューを親にミックスするより良い方法はありますか?
私がこの問題に遭遇した解決策の1つは、this articleです。これは正しく見えますが、これを解決するよりエレガントな方法があれば私は興味があります。
これはまさに私が探していたものです。ありがとうございました! – picardo
あなたは['(w)=>'](http://coffeescript.org/#fat_arrow)を使って 'context'を避けることができます。 '@collection.each(w)=>'は別のオプションです。 –
@mu Cool ':)'太い矢について知らなかった。 –