【发布时间】:2020-05-07 21:08:42
【问题描述】:
假设页面中已经存在一个正在运行的 Angular。我想向其中注入/添加一个隔离的角度应用程序(它与现有的角度应用程序隔离运行而不受干扰)。
例如,我想 1) 在页面中插入一个自定义元素,例如 <app-root-two></app-root-two>,然后 2) 初始化/引导该应用程序(反之亦然)。
我将如何实现这一目标?
我知道在 AngularJs 中这是可能的,因为您可以检索 DOM 元素并使用 angular.boostrap(<dom-element>) 对其进行初始化,但我不认为 Angular 具有相同的手动引导模式。它是抽象的,它直接进入 DOM 以查找根元素,通常是页面中的<app-root>。
我正在使用的当前 Angular 版本是 5.2 版和 Angular CLI 1.6.6。我已经尝试使用.angular-cli.json 文件来生成多个应用程序,但是它针对两个单独的“index.html”文件,即一个项目中的两个应用程序,不一定在一页中。
【问题讨论】:
-
自然搜索索引有多重要?我会在主容器应用程序中使用 iframe,每个应用程序都有单独的视图和子路由。
-
也看看这个github.com/angular/angular/issues/16930,看起来团队正在考虑这是一个功能请求
-
检查了现有文档的 Angular 并建议在同一页面中拥有 >1 个应用程序不是一个好主意,因此会留下这个问题而没有正确答案。除非 Angular 具有类似 jQuery.noConflict 的机制,否则也许有可能
-
@HunterFrazier 你好。您是否有加载多个 Angular 应用程序的 iFrame 解决方案示例:?谢谢
-
对不起帕斯卡,我没有。不过,我过去已经实现了这样的功能,基本上是这样的。使用代理(最好在服务器层(Nginx)而不是 Angular 的内置路由代理别名或其他名称)将子目录位置(例如 /app2)重定向到您的辅助应用程序(例如 localhost:4201)。这将允许您在本地、相对寻址的 iframe(例如 src="/app2")中提供第二个应用程序,这将有助于解决性能和跨域请求问题。从那里我想可能性是无穷无尽的!我说,iframe 整天是唯一的方法
标签: javascript angular