私たちは現在マリオネットで大きなプロジェクトに取り組んでいます。アーキテクチャはhttp://www.backbonerails.com/に基づいています。プロジェクトはいくつかのモジュールに分割され、それぞれに独自の責任があります。モジュールが再利用可能であることが重要です。これにより、Web サイトの任意の領域でレンダリングできます。現在、モジュールは次のように開始されています。
App.execute "module:name_of_the_module:action", @model, @layout.regionName
ここまではうまくいきましたが、今回はルーターをプロジェクトに追加しました。すべてのモジュールはルーティングを担当する必要があるため、モジュール内にあります。ルーターがルートを取得してルーティングを開始すると、使用するリージョンとモデルが失われます。そのため、最初にリージョンとモデルをモジュールに保存して、後でルーターで使用する必要があります。
App.commands.setHandler "module:name_of_the_module:action", (model, region) ->
MyModule.region = region
MyModule.model = model
通常、すべてのウィジェットには多くのアクション (表示、編集、作成など) があり、多くの複製が必要になるため、これは実際には良い方法ではありません。
だから私は尋ねています - どのようにモジュールを初期化し、ルーターを操作しますか? ベストプラクティスはありますか?