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