Tôi có chế độ xem được gọi là DashboardView
để khởi tạo nhiều WidgetView
s. Mỗi widget cần phải có sự ràng buộc sự kiện riêng của nó. Cho đến nay như tôi có thể nói, những cam kết ràng buộc bị lạc khi xem là ra và thêm vào xem cha mẹ, ví dụ:Sự kiện trong Backbone.js các chế độ xem lồng nhau
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)
Làm theo cách này, những sự kiện nhấp chuột vào các yếu tố .config
của widget được bây giờ bị mất . Có cách nào tốt hơn để trộn các khung nhìn lồng nhau vào cha mẹ trong khi đảm bảo rằng các trình xử lý sự kiện trên chế độ xem con được chuyển đúng không?
Một giải pháp mà tôi đã gặp phải cho sự cố này có trong số this article. Điều này có vẻ đúng, nhưng tôi tò mò nếu có một cách thanh lịch hơn để giải quyết điều này.
Đây chính xác là những gì tôi đang tìm kiếm. Cảm ơn bạn! – picardo
Bạn có thể tránh các nội dung 'bối cảnh' bằng cách sử dụng [' (w) => '] (http://coffeescript.org/#fat_arrow). Và '@ collection' nên là Underscore-ified, vì vậy '@collection.each (w) =>' là một tùy chọn khác. –
@mu Cool ':)' Không biết về mũi tên béo. –