使用 iframe 将 AngularJS 迁移到 Angular 8
Posted
技术标签:
【中文标题】使用 iframe 将 AngularJS 迁移到 Angular 8【英文标题】:Migrate AngularJS to Angular 8 with iframe 【发布时间】:2019-12-20 23:44:12 【问题描述】:所以,我的客户希望我将他的 AngularJS 页面迁移到最新的 Angular 8 框架。 但他还想为当前的 AngularJS 应用程序添加一些功能。 工作流程如下: 1. 将 AngularJS 迁移到 Angular 8 2. 当旧代码中有新内容时,仍然维护旧的 Angular JS 应用程序。
该应用具有静态标题导航。所以我的想法是在 Angular 8 中构建标头,并通过 iframe 将旧的 Angular JS 应用程序放到 Angular 8 的根目录中。 因此,当用户单击 Angular 8 应用程序中的导航时,他会将路由器路由到正确的 Angular JS 应用程序,该应用程序将在 Angular 8 应用程序的 iframe 中呈现。
因此,这背后的想法是逐页迁移页面,但如果需要仍保留旧的 AngularJS 应用程序。
这可能吗?
我希望有人可以帮助我。
最好的问候
【问题讨论】:
【参考方案1】:首先迁移我建议你使用这个migration guide
其次,我在一个应用程序上工作过,我同时使用了 Angular Js 和 angular8,我遇到的唯一问题是 rootes,我无法在 angular 中使用 usr 路由。
我是怎么做到的?
我通过<script></script>
在同一个jsp中调用了angular js和转置的angular 8文件
这是我的 jsp 示例,其中有一个名为 pointe 的 angular 8 应用程序和一个名为 employee 的 angulars js 应用程序
<%@ include file="init.jsp" %>
<link rel="stylesheet" href="/angulars/pointe/styles.css"/>
<app-root></app-root>
<script src="/angulars/pointe/runtime-es2015.js" type="module"></script>
<script src="/angulars/pointe/runtime-es5.js" nomodule defer></script>
<script src="/angulars/pointe/polyfills-es5.js" nomodule defer></script>
<script src="/angulars/pointe/polyfills-es2015.js" type="module"></script>
<script src="/angulars/pointe/scripts.js" defer></script>
<script src="/angulars/pointe/main-es2015.js" type="module"></script>
<script src="/angulars/pointe/main-es5.js" nomodule defer></script>
<script src="/angulars/employee/js/angular.js"></script>
<script src="/angulars/employee/js/app.js"></script>
我认为,如果您将脚本加载到 iframe 中,它也可以工作, 但是您必须以任何方式将所有这些代码包装在一个容器中。
最后我真的不建议你这样做,因为我在使用 angular js 和 angular 8 加载的库时遇到了很多麻烦
【讨论】:
以上是关于使用 iframe 将 AngularJS 迁移到 Angular 8的主要内容,如果未能解决你的问题,请参考以下文章
无法通过 AngularJS 控制器将 url 加载到 iframe
将 Spring MVC 应用程序从 JSP 迁移到 AngularJS