これを達成するには2つの方法があります。最初に、親を子ビューに渡します。次に、イベントの発生を処理するeventAggregatorを作成します。 FIRST
:
あなたはオプションとしてpreviewDataViewにAPPVIEWを渡すことができます。
あなたがそうのような親カスタムイベントに結合するあなたのpreviewDataViewで
preview = new previewDataView({ // your options, 'parent':this });
:SECOND
this.parent = this.options.parent;
this.parent.bind('eventName', this.onEvent, this);
:(ちょうどこの技術を学んだ)
あなたはあなたの意見を購読できますeventAggregatorを作成することができますお互いに意味のある出来事のために、そして、参加を解除してください。ここでスタックにこれを詳細に説明する良い答えがある:コメントでfire an event from one view to another in backbone
、@Brian Genisioは彼のコードでこれを含めるためにさらに一歩それを取る:
Backbone.View.prototype.eventAggregator = _.extend({}, Backbone.Events);
がスタートで、この実行を持っていますあなたのコードのすべてのビューはeventAggregatorにアクセスすることができます。このイベントは、ビュー全体でトリガーされ、受け取られる必要があるイベントの中心的なハブになります。あなたはこのようにそれを使用したい:これにより
// Parent View
this.eventAggregator.trigger('someEvent');
// Child View
this.eventAggregator.bind('someEvent', this.function, this);
は、明示的にイベントがトリガとリスニングのためにお互いにアクセスする必要がビュー間参照を渡す必要はありません。この方法は私のために便利です。 :-)
私はあまりにも、良い説明btw ..あなたのbackbone.jsプロジェクトは、ビューとトランジションでより複雑になった後、それらの事は本当にそのようなイベントを処理するパターンの方法を把握するのに役立ちます。 – mateusmaso