私は Javascript + BackboneJS (MVC フレームワーク) + RequireJS フレームワーク内で作業していますが、この質問はやや一般的です。
バックボーンでは、ビューは従来のビューとコントローラーの組み合わせであり、HTML テンプレートは従来の MVC ビューであることを説明することから始めましょう。
これについてしばらく頭を悩ませていましたが、正しい/実用的なアプローチがどうあるべきかわかりません。
多くのコードが依存するユーザー設定 (単位系、言語選択など) を含む User オブジェクトがあります。
一部のビューは、テンプレートを使用せずに (マッピング ライブラリやグラフ ライブラリなどのサード パーティのライブラリを使用して) ほとんどの作業を行うため、たとえば、単位変換を処理するためにユーザー オブジェクトに依存しています。私は現在、カプセル化をあまり壊さずにその依存関係を管理するために RequireJS を使用しています。
ビューの一部は、それ自体ではほとんど作業を行わず、Model データのみをテンプレート エンジン/テンプレートに渡します。これは作業を行い、単位変換などのために User オブジェクトに依存します。この依存関係をテンプレートに渡す唯一の方法は、それをモデルに注入し、モデルをテンプレート エンジンに渡すことです。
私の質問は、このように広く必要とされている依存関係をどのように処理するのが最善でしょうか? - どこからでもアクセスできるアプリ全体の参照/グローバル オブジェクトを作成しますか? (YUK) - RequireJS の管理された依存関係を使用します。一般的には、具体的なオブジェクトではなく、クラス/オブジェクト定義に対して管理された依存関係の読み込みを使用することのみが推奨されます。- または、依存性注入のみを使用し、その依存性を必要とするすべてのものに手動で渡しますか?