0
我想在我的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)
這是代碼的簡化版本,所以讓我知道如果有什麼遺漏,我會更新它。
謝謝畝,我會嘗試現在。你會推薦這樣做嗎?還是應該互相忽略並通過模型/集合更新進行通信(因爲這些更改都存儲在數據庫中)?我經常看到一些解決方案,這些解決方案建議只是讓孩子成爲家長的一部分,但對我而言,這看起來並不太乾燥或OOP。 – botbot 2012-07-23 23:52:52
@masterkrang:取決於(像往常一樣)。如果你想讓這些設置保持不變,那麼'Text'將會監聽的一個單獨的設置模型(對於「change」事件)和'StyleToolBar'將會調用'set'會有意義。如果你不想持久化,那麼可以使用一個簡單的'Backbone.Events'實例作爲一個簡單的pub-sub對象。對於簡單的事情來說,通過事件彼此交流意見是合理的,但當事情變得更加複雜時,準備轉向其他方法之一。 – 2012-07-24 00:00:09
實現了這一點,似乎工作,再次感謝。將會在「事情變得更加複雜」時再回來。 :) – botbot 2012-07-24 00:09:55