Backbone で設計されたアプリケーションのアーキテクチャに問題があります。
カスケードされた階層ビューがあります。つまり、ルート ビューにはヘッダー ビュー、ミドル ビュー、フッター ビューがあります。それらのそれぞれは、いくつかの下位レベルのビューで構成されています。たとえば、ヘッダー ビューは、タブ、設定、およびログイン/ログアウト ビューで構成されています。それは単なるビューの集約です。
また、いくつかの属性を持つ構成モデルもあり、 AJAX (標準バックボーンフェッチ) を介してロードされます。モデル属性は、ポップアップ、メニューなどを使用してインターフェイスに表示され、ユーザーが自分の設定を選択できるようにします。ユーザーが設定を変更すると、アプリの多くの部分を再レンダリングする必要があります。構成モデルは「状態」プロパティを保持します (たとえば、プロパティはAJAX 経由でフェッチされたcurrentPeriod
中で使用されます)periods
ビュー内では、構成で何かが変更されたときにlistenTo(this.model, 'change:currentPeriod', this.render)
、このビューを再レンダリングするために使用します。
model:: 内にすべてのデフォルトの状態属性を設定しparse
ました。問題は、設定する属性が 10 個あり (解析が終了した後)、おそらくそれぞれがいくつかのイベントをトリガーする場合、それらの多くが複数回実行されることです (これは私が望んでいるものではありません)。
{silent:true} オプションを使用して解析内で現在の状態属性を設定する可能性を探していました。そうすると、イベントはトリガーされません。すでに同じ問題を抱えていて、簡単な解決策があることを願っています。前もって感謝します!