我们正在尝试创建具有多个/独立“子应用程序”的门户类型应用程序。假设所有子应用程序都是用Angular编写的,那么实现以下目标的好模式是什么。带AngularJS(多个独立应用程序)的门户类型应用程序
- 每个应用程序都可以独立开发和部署。
- 他们共享一个共同的认证服务,他们可以共享公共库(指令,过滤器等)。
- 在任何给定时间只有一个应用程序可见并处于活动状态。每个子应用程序的范围是相互隔离的。
- 当用户进入子应用程序之间时,只要用户不刷新页面或访问另一个静态链接,就会保持该状态。 (我认为这是内置到Angular中,并且可能不需要特别的努力)
- 每个子应用程序都会有多个视图(它将拥有自己的菜单)。将会有一个基于子应用程序可用的顶级菜单。理想情况下,顶级菜单是根据部署的子应用程序动态构建的。也许有一个服务器端组件(服务器检测到文件夹结构等,并确定部署的应用程序,并注入必要的JS代码到页面中)。
鉴于AngularJs没有多层次的视图结构,我考虑在不同的div上使用多个ng-app声明,然后使用$ window scope来存储活动app的key并隐藏那些不活跃的。