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