ChildView を数回インスタンス化します。ChildViews にはトリガーがあります。トリガーされると、モデルを設定する親の関数が呼び出されます。問題は、トリガーがトリガーされるのは 1 回だけ (少なくとも私が見ることができる場合) ですが、親は 2 つを受け取ることです。ゴースト ビューについては知っていますが、どうすればそれらを見つけることができますか? グローバル名前空間は使用せず、require.js を使用します。
vParentView = require 'views/parentview'
class vParentView
render: ->
view1 = new ChildView()
view1.on 'data changed', @updateModel, @
view2 = new ChildView()
view2.on 'data changed', @updateModel, @
view3 = new ChildView()
view3.on 'data changed', @updateModel, @
etc...
updateModel: (data) ->
@model.set data.attr, data.options
コンテキスト @ を削除して、updateModel() を 2 回トリガーしたビューを確認しました。したがって、同じビューが updateModel を 2 回トリガーします。
編集: ChildView のコードはやや面白くありません:
vChildView = require 'views/childview'
class vChildView
events:
'change input.someclass': 'onChangeInput'
'change textarea.someclass': 'onChangeInput'
onChangeInput: (e) ->
@trigger 'data changed'
render: ->
html = _.template tpl
@$el.html html
@