AngularJS 在单页内的 iFrame 之间拆分模块

AngularJS module split among iFrames within single page

我有一个包含 1 个模块、5 个页面和 5 个控制器的 Web 应用程序。每个 HTML 页面声明相同的 ng-app。

页面在门户网站的小部件中加载;也就是说,每个页面都加载到门户的 iFrame 中。 5个controller使用同一个服务,但是因为每个页面都加载到一个iFrame中,所以服务被实例化了5次。

我不熟悉 AngularJS 但我很确定必须有一种干净的方法来做到这一点。我不想加载 5 倍我的 app.js,5 倍我的服务...

我在网上搜索了几个小时,什么也没找到。

按照我的理解,您是在尝试使用外部菜单在 iframe 中浏览您的 angular 应用程序吗?每次您的用户单击您的菜单时,都会在您的服务器上请求不同的 HTML 页面?

这意味着您在服务器上调用了 5 个不同的 HTML 页面,这些页面依次调用 ng-app 指令,从而(重新)实例化您的应用程序。

为防止这种情况发生,您不应调用每个 html 页面的请求,而是通过加载索引页面并在您的应用程序中提供路由来请求应用程序一次,用户可以在其中导航。

这里是plunkerexample using ng-route.