问题标签 [angular2-upgrade]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3115 浏览

angular - Angular2升级到RC6,找不到traceur

升级到 后RC6,出现以下错误:

我知道没有代码就不容易解决问题,但也许有人有同样的错误并想通了。

现有帖子无法解决我的问题

更新: system.config.js:

更新 2:我将 system.config.js 更改为以下内容:

现在我收到以下错误:

0 投票
2 回答
2235 浏览

angularjs - Angular1 <-> Angular2 Bridge 访问 $rootScope

我使用以下升级/降级桥https://angular.io/docs/ts/latest/guide/upgrade.html在一个应用程序中并排放置Angular1Angular2 。

我的问题是是否有可能从Angular2服务访问Angular1 。 需要明确的是,我不是在Angular2中的等价物是什么。$rootScope$rootScope

0 投票
1 回答
701 浏览

angularjs - 混合 angular1+2 应用程序出错:未捕获错误:没有 Angular 2 应用程序的 NgModule 无法实例化 UpgradeAdapter

我正在开始一个 angular2 项目,希望重用我的 angular1 组件。我试图根据这个 plunkr http://plnkr.co/edit/yMjghOFhFWuY8G1fVIEg设置我的项目,但是当我尝试运行我的应用程序时,我收到了这个错误:

plunkr 只是在没有任何 ng2 模块的情况下实例化了升级适配器,我不明白为什么它对我不起作用。我不确定 plunkr 使用的 angular2 版本是什么,但我使用的是 2.0.0 版本。

0 投票
1 回答
114 浏览

angular - 无法将需要另一个控制器的 Angular 1.5 组件升级到 Angular 2

我有两个 Angular 1.5 组件:选项卡和选项卡。选项卡组件需要选项卡组件的控制器,以便后者可以管理选项卡组件的活动状态。这是代码(在打字稿中):

当我尝试使用 UpgradeAdapter 将这两个组件升级到 angular 2 时,TabController 中的父级永远不会得到解决,并且我收到“未定义的没有函数‘addTab’”错误消息。

0 投票
1 回答
2175 浏览

angular - 如何使用 Angular 2 的 upgradeAdapter.upgradeNg1Component?

我很确定我在这里遗漏了一些基本的东西。

我在 RC5 之前开始使用 ng2 升级适配器开始将 ng1 应用程序移植到 ng2。之前,当您声明组件直接在组件上使用的指令时,一切都正确连接并且有意义。

但是,现在我正在尝试将我的混合应用程序迁移到 Angular 2 Final,并且在涉及依赖项时,整个 NgModule 事情都与混合应用程序混淆了。

为了创建升级适配器,我需要将我想在混合应用程序中使用的 Ng2 模块传递给它。没关系。但这意味着必须在创建升级适配器之前完全定义 Ng2 模块,对吗?如果这是真的,那么我如何使用尚未创建的升级适配器来升级 ng1 组件以在 ng2 模块中使用(需要在创建适配器之前创建)???

仅供参考,另一种方式很好 - 我有一个 typescript 模块,可以降级我需要在 ng1 中使用的所有顶级 ng2 组件(在 ui-router 配置中),并且在升级适配器之后加载 typescript 模块以及包含我要降级的组件的 Ng2 模块。

那么,我错过了什么?如何使用升级适配器的 upgradeNg1Component 功能?

如果没有这个功能,它会迫使我从最外层的组件开始向内工作。这很好用,除了有一些通用组件被全部使用,我宁愿不必先将它们转换为 ng2。

0 投票
2 回答
676 浏览

angularjs - Angular 1 和 2 混合应用程序 - “未定义要求”

我正在尝试将一个巨大的客户端应用程序从 Angular 1.x 升级到 Angular 2,但我遇到了一个非常烦人的障碍。我用一个虚拟的轻量级项目(粘贴在下面的文件)重新创建了这个问题,但让我先解释一下这个问题。

基本上,当我将tsconfig.json模块指定为时commonjs,我在 chrome 开发控制台中收到以下错误:

app.module.ts:1Uncaught ReferenceError: 要求未定义

当我将模块切换到 时system,出现以下错误:

未捕获的 TypeError:无效的 System.register 调用。匿名 System.register 调用只能由 SystemJS.import 加载的模块进行,而不能通过脚本标签进行。

当我将模块切换到 时umd,一切正常。但鉴于角度本身建议使用commonjs,我担心这umd不是正确的答案。但是,如果我错了并且umd完全没问题,我很想听听一个很好的解释。

这是我重现我的问题的代码:

tsconfig.json:

打字.json:

systemjs.config.js :

包.json:

应用程序.js:

app.module.ts :

appCtrl.ts :

升级适配器.ts:

我错过了什么?

0 投票
0 回答
599 浏览

javascript - Angular 1+2 混合应用程序中的延迟加载

我们有一个 Angular 1+2 混合应用程序(因此使用 Angular 1 基础应用程序)。

在使用适配器引导我们的应用程序之前,我们使用升级适配器来降级我们的 angular2 组件。这按预期工作。

但是,我们预计会有大量 angular2 组件(150+),因此在引导之前加载所有组件将意味着初始加载非常慢。我正在尝试寻找延迟加载 angular2 组件的方法,以便我们可以根据需要加载它们。有没有办法做到这一点?

这是我的代码的一部分。

main.ts

模块.ts

升级适配器.ts

仪表板.component.ts

执行此操作后,我的仪表板组件可在应用程序中使用。

0 投票
1 回答
373 浏览

angular - Angular 2.2.1 混合应用程序不引导

我正在使用 Angular 2.2.1遵循从 1.x 升级指南。我已经剥离了大部分代码,现在我得到了:

main.ts:

app.module.ts:

当我的 webapp 加载时,我收到以下错误:

并且没有渲染。thenmain.ts 中 的块没有被调用。AppComponent使用选择器test-angular-two,除此之外它是空的。

这是怎么回事?

0 投票
1 回答
679 浏览

angularjs - 无法从 @angular\upgrade\static Angular V2.2.1 导入 UpgradeModule

我目前正在将我的 AngularJS (ng1) 应用程序升级到 Angular 2 (ng2)。

我正在使用 Angular 2.2.1 版。

当我从 @angular\upgrade\static 导入 UpgradeModule 时,出现以下异常: Uncaught SyntaxError: Unexpected reserved word Uncaught ReferenceError: webpackJsnop is not defined

我正在使用 WebPack V1.13.1。

当我使用 upgrade_adapter 方式时,我需要添加 @Inject 注释。

谢谢您的帮助。

0 投票
2 回答
2067 浏览

javascript - Bootstrapped Angular 2 + Angular 1 Hybrid App在使用downgradeComponent时未加载

我有一个 Angular 1 应用程序,我按照官方 Angular 教程 ( https://angular.io/docs/ts/latest/guide/upgrade.html ) 的说明引导混合 1+2 应用程序。我已经准备好所有代码并运行该应用程序,但绝对没有任何反应。它只是转到根 URL,我只能得到index.html. 然而,主要<div ng-view>永远不会通过$routeProvider和更新app.ts。至少这似乎是正在发生的事情。有零错误。这是我到目前为止所拥有的:

main.ts(通过 SystemJS 加载)

上述混合引导代码的一个注释 -据我所知,它正在工作。如果我将 Angular1 应用程序名称更改为blahblah,我会在浏览器中收到一大堆错误。此代码可以找到MyA1App定义的 Angular1 模块app.ts并能够引导它。

索引.html

app.module.ts

app.ts(来自 Angular 1,它定义了模块和路由 - 这应该仍然在使用和使用)

所以这里是问题的概述:

  • main.ts通过systemjs调用引导到 Angular2 index.html(似乎成功 - 没有错误)
  • 我可以在 Angular1 控制器、Landing 等中放置断点,并查看正在定义和加载的控制器。但没有其他事情发生!没有错误或任何东西。
  • ng-view指令永远不会通过路由更新。在主页上检查后,它看起来像:<div class="main-content" ng-view=""></div>
  • 任何地方都没有 JS 错误
  • 如果我回去使用原始的 A1 引导程序,index.html它的工作原理是使用systemjs加载 A2 和引导 A1 作为混合。

我在这里做错了什么,以至于原始Angular1应用程序似乎可以正常加载和引导,但实际上并没有做任何事情?


更新:

我已经追踪到有问题的代码如下app.module.ts

这不是路由(那是一条红鲱鱼)。Angular1如果我删除上面的代码,整个应用程序将引导并加载。我在上面的代码中做了什么可能导致一切停止加载,但不会产生任何JavaScript错误?