1

私たちは現在マリオネットで大きなプロジェクトに取り組んでいます。アーキテクチャは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

通常、すべてのウィジェットには多くのアクション (表示、編集、作成など) があり、多くの複製が必要になるため、これは実際には良い方法ではありません。

だから私は尋ねています - どのようにモジュールを初期化し、ルーターを操作しますか? ベストプラクティスはありますか?

4

1 に答える 1

0

状態ベースのルーティングを可能にする marionette.js プラグインを作成しました (angular.js ui-router によく似ています)。コード内のモジュールを完全に削除し、コントローラーを再利用できます。

リンク: http://ajency.github.io/marionette.state/

于 2014-12-10T13:25:22.860 に答える