Birden çok WidgetView
s örneğini başlatan DashboardView
adlı bir görünüm var. Her widget'ın kendi etkinlik bağlantılarına sahip olması gerekir. Şimdiye kadar söyleyebilirim, yani görünümü, render ve ebeveyn görünümüne eklendiğinde bu bağlamaları kaybolmak:Backbone.js iç içe geçmiş görünümlerdeki olaylar
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)
bu şekilde yaparak, widget .config
elemana tıklama etkinlikleri kayıp şimdi . İç görünümleri ebeveynin içine karıştırmanın daha iyi bir yolu var mıdır, bu arada alt görünümdeki olay işleyicilerinin doğru şekilde yönlendirilmesini sağlamak mı?
Bu sorunla karşılaştığım bir çözüm, this article içeriyor. Bu doğru görünüyor, ama bunu çözmenin daha zarif bir yolu varsa merak ediyorum.
Bu tam olarak aradığım şey. Teşekkür ederim! – picardo
['(w) =>'] (http://coffeescript.org/#fat_arrow) kullanarak 'context' maddelerinden kaçınabilirsiniz. Ve 'koleksiyon 'olmalıdır zaten-Ified zaten olmalıdır. –
@mu Cool ':) Şişman oku hakkında bilmiyordum. –