我們正在嘗試創建具有多個/獨立「子應用程序」的門戶類型應用程序。假設所有子應用程序都是用Angular編寫的,那麼實現以下目標的好模式是什麼。帶AngularJS(多個獨立應用程序)的門戶類型應用程序
- 每個應用程序都可以獨立開發和部署。
- 他們共享一個共同的認證服務,他們可以共享公共庫(指令,過濾器等)。
- 在任何給定時間只有一個應用程序可見並處於活動狀態。每個子應用程序的範圍是相互隔離的。
- 當用戶進入子應用程序之間時,只要用戶不刷新頁面或訪問另一個靜態鏈接,就會保持該狀態。 (我認爲這是內置到Angular中,並且可能不需要特別的努力)
- 每個子應用程序都會有多個視圖(它將擁有自己的菜單)。將會有一個基於子應用程序可用的頂級菜單。理想情況下,頂級菜單是根據部署的子應用程序動態構建的。也許有一個服務器端組件(服務器檢測到文件夾結構等,並確定部署的應用程序,並注入必要的JS代碼到頁面中)。
鑑於AngularJs沒有多層次的視圖結構,我考慮在不同的div上使用多個ng-app聲明,然後使用$ window scope來存儲活動app的key並隱藏那些不活躍的。