【问题标题】:upgrade angular 1 to 2将角度 1 升级到 2
【发布时间】:2016-01-14 09:52:08
【问题描述】:

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

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

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

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

请帮我整理一下。

【问题讨论】:

    标签: angular angular2-upgrade


    【解决方案1】:

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

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

    • 引导
    • 控制器
    • 指令
    • 组件
    • 模块
    • 路由
    • 服务
    • 表格
    • 过滤器

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

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

    【讨论】:

      【解决方案2】:

      在同一应用程序中启用 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

      【讨论】:

        【解决方案3】:

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

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

        http://angular.cloud

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-11
          • 2019-12-15
          • 2019-01-18
          • 1970-01-01
          • 2017-05-24
          • 1970-01-01
          相关资源
          最近更新 更多