如何集成跨站点多角度应用程序?

时间:2015-01-05 04:11:28

标签: javascript angularjs jsp architecture

我有一个由不同子系统组成的大型信息系统。我的目标之一是组织这些子系统之间的导航和本地化。

当我通过JSP在后端生成视图时,我只使用jsp:include引用特殊的web-app,它返回带有跨站点导航的标题,此web-app负责存储所有子系统的用户区域设置。

现在我切换到了角度,发现用jsp:include替换ng-include是不可能的。我有2个不同的ng-apps - 标题(来自外部网络应用程序)和当前的,例如,subsystem1 ng-app。标题中的 ng-include指令不起作用因为我必须引导它,但我无法引导标头ng-app,因为它不存在 - 我正在抓取它与ng-include。恶性循环。

现在我看到了一种解决问题的方法:

通过对特殊 header-web-app 的ajax调用,在第二个ng-app(非标题,subsystem1' s ng-app)中获取标题标记。然后,通过简单的DOM操作将传入的HTML插入标头并手动引导它。缺点是显而易见的 - 我将在子系统ng-app中进行DOM操作,但在其外部插入HTML,因为2个不同的ng-apps不能插入或嵌套。可以吗?

看起来我正在发明自行车,所以我在这里问,如何整合跨网站的ng-apps 是否可以在一个网页中的不同ng-apps之间共享数据?我知道,可以通过服务和工厂在控制器之间共享数据,这是一种很好的做法。 是否有任何角度方式在ng-apps之间共享数据?

请不要提供类似JSP的解决方案,因为我想保持开发的角度方式,因此只使用带有角度标记的静态页面,并通过ajax调用使所有服务器端工作。也许,我误解了角度方式,但现在我完全按照我的描述看到它。

1 个答案:

答案 0 :(得分:1)

来自this site的方法#1看起来对我很好。简而言之,任何ng-app都包含标记anf js。 JS可以由script src=...简单地加载,并且许多ng-apps可以用作一个大的根应用程序的模块。可以通过ng-include加载标记。