7

我有版本 1的 Angular 应用程序,所以我可以使用 Angular 版本 2升级它

我们开始设计一个新项目,该项目指定使用 Angular 构建,就像我们之前的每个项目一样,这个项目的重要性非常高,它至少会存在和维护数年。

Angular 2.0 进入了 beta 模式,似乎一切都将发生变化,$scope 已经结束,指令已经结束,整个 DI 概念即将发生变化。

  1. 在接下来的几个月中是否有需要考虑的迁移路径/策略?
  2. 如果我们使用 1.x 构建项目,我们需要在开发过程中采取什么措施来确保干净的迁移?这两个版本可以被视为两个不同的框架吗?

请帮我整理一下。

4

3 回答 3

5

我认为从 Angular 1 迁移到 2 并不像大多数人想象的那么糟糕。

基本上,您需要先将其分解并迁移概念...

  • 自举
  • 控制器
  • 指令
  • 成分
  • 模块
  • 路由
  • 服务
  • 形式
  • 过滤器

几乎所有这些都可以映射回 1.x 概念——即使没有 1:1 的关系。一旦你了解了这些事情是如何完成的,决定如何将现有代码慢慢迁移到新概念就容易多了。

很难在一个 SO 答案中涵盖所有这些内容,因此不妨查看ngmigrate.telerik.com,其中包含更多详细信息。

于 2016-10-31T20:40:12.593 回答
3

在同一应用程序中启用 Angular 1 和 Angular 2 的混合。您可以在同一个视图中混合使用 Angular 1 和 Angular 2 组件。Angular 1 和 Angular 2 可以跨框架注入服务。数据绑定跨框架工作。

应用升级流程:

  1. 在现有应用程序中包含 Angular 2 和 ng-upgrade 库
  2. 选择您要迁移的组件
    • 编辑 Angular 1 指令的模板以符合 Angular 2 语法
    • 将指令的控制器/链接函数转换为 Angular 2 语法/语义
  3. 使用 ng-upgrade 将指令(现在是组件)导出为 Angular 1 组件(如果您希望从 Angular 1 模板调用新的 Angular 2 组件,则需要这样做)
  4. 选择您要迁移的服务
    • 大多数服务应该只需要很少甚至不需要更改。
    • 在 Angular 2 中配置服务。
    • (可选)如果您的 Angular 1 代码的其他部分仍在使用该服务,则使用 ng-upgrade 将服务重新导出到 Angular 1
  5. 以方便您的应用程序开发的顺序重复执行步骤 #2 和 #3
  6. 一旦不再需要转换服务/组件,请删除顶级 Angular 1 引导程序并替换为 Angular 2 引导程序。

参考:http ://angularjs.blogspot.com/2015/08/angular-1-and-angular-2-coexistence.html

于 2016-01-21T00:23:24.770 回答
0

有一个在线网站将 Angular 1.x HTML 代码片段转换为 Angular 4.x。它还不支持 ts,但如果您有包含大量 HTML 页面的旧应用程序,这可能会派上用场。

https://www.linkedin.com/pulse/online-angular-1x-4x-converter-balram-chavan

http://angular.cloud

于 2017-06-28T02:35:08.267 回答