[英]Listen to Child Events in Backbone.View
我想在Backbone.View中聽一個孩子的事件。 我認為這將是正確的方法,但我不確定。 未調用父級中的更新功能。 謝謝您的幫助。
text.js.coffee
class App.Views.Text extends Backbone.Views
initialize: ->
@_styleToolbar = App.Views.StyleToolbar el: $("#style_toolbar")
@_styleToolbar.on("update", @update())
update: ->
# update text color, font etc
style_toolbar.js.coffee
class App.Views.StyleToolbar extends Backbone.Views
'change .font_face select' : 'update'
update: (e) ->
$(@el).trigger('update', @el)
這是代碼的簡化版本,所以如果有什么遺漏,請告訴我,我將對其進行更新。
很好,Backbone視圖中有Backbone.Events
混合是有原因的。
但是,您在該代碼中有幾個問題。 你需要解決的是什么觸發了事件,要觸發的觀點,而不是它的el
; 這個:
$(@el).trigger('update', @el)
應該:
@trigger('update', @)
我也將@el
切換為just @
以便偵聽器可以訪問整個視圖對象,而不僅僅是其el
。
並且,偵聽器應綁定一個函數,而不是該函數的返回值:
@_styleToolbar.on("update", @update)
如果使用@update()
則將調用@update
並將其返回值綁定到"update"
事件。 您可能還需要使用粗箭頭( =>
)定義update
:
update: (toolbar) =>
# update text color, font etc
調用update
時,它將為您提供正確的@
(又稱this
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.