複数の/独立した「サブアプリケーション」を含むポータルタイプのアプリケーションを作成しようとしています。すべてのサブアプリケーションがAngularで書かれていると仮定すると、以下の目標を達成するための良いパターンとなります。AngularJS(複数の独立アプリ)を使用したポータルタイプアプリケーション
- 各アプリは、互いに独立して開発して展開することができます。
- 共通の認証サービスを共有しており、共通のライブラリ(ディレクティブ、フィルタなど)を共有できます。
- いつでも1つのアプリだけが表示され、アクティブになります。各サブアプリケーションのスコープは互いに分離されています。
- ユーザーがサブアプリケーション間を移動すると、ユーザーがページを更新したり、別の静的リンクを訪れたりしない限り、状態は維持されます。 (これはAngularに組み込まれており、特別な努力が必要ないかもしれないと思います)
- 各サブアプリケーションには複数のビューがあります(独自のメニューがあります)。利用可能なサブアプリケーションに基づいてトップメニューが表示されます。理想的には、トップメニューは、展開されるサブアプリケーションに基づいて動的に構築されます。たぶん、これにサーバー側のコンポーネントがあります(サーバーはフォルダ構造などを検出し、展開されるアプリケーションを決定し、必要なjsコードをページに挿入します)。
AngularJsには複数レベルのビュー構造がありませんが、私は異なるdivで複数のng-app宣言を使用し、$ windowスコープを使用してアクティブなアプリケーションのキーを保存し、アクティブでないもの