问题标签 [ng-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 投票
1 回答
456 浏览

angular - 从 2 升级后,角度核心变化检测的 Angular 4 错误不同

我有一个升级到 ng4 的 ng2 网站。在构建时,我收到一个错误

(15,48):错误 TS2304:找不到名称“Iterable”。

这是唯一的错误,我从来没有在 ng2 中遇到过这个错误。

我不确定从哪里开始调试。任何帮助,将不胜感激。

0 投票
1 回答
396 浏览

javascript - 将 ng-annotate 与 Angular cli 一起使用

我有一个现有的 angular.js 应用程序,我正在使用 NgUpgrade 升级到 angular。我也在尝试使用 angular cli 作为构建系统。ng serve并且ng build工作完美,但我遇到了麻烦ng build -prod

对于原始应用程序,我使用 gulp 进行构建,作为中间步骤,我使用 ng-annotate 转换了输入文件。我很难让它与 angular cli 一起使用。

有没有办法将 ng-annotate 与集成ng build -prod?或者在缩小之前处理 angular.js 文件的任何其他方式?

0 投票
1 回答
18783 浏览

angularjs - 并排运行 Angular 和 AngularJS 框架

我找到了描述如何将 Angular (2) 组件集成到 AngularJS 中的资源,但所有这些都涉及像 Angular 项目一样设置 AngularJS 项目,需要来自 TypeScript 的转译器,需要 ES6,需要导入语句。我想在我的 AngularJS 应用程序中简单地使用 Angular 组件,而不会破坏我现有的工作流程。这可能吗,如果可以,我该如何实施?我以为这是升级模块的目的,但是我看到的所有教程都需要 AngularJS 应用程序中的 import 语句,这需要一个转译器。如果 Angular 应用程序需要提前转译,那没关系,但 AngularJS 应用程序无法转译,因为它运行在 django 服务器上,我不想用转译器运行另一台服务器。

需要明确的是,我当前的 AngularJS 应用程序由 django 提供服务。我想包含一些 Angular 组件。这些在开发过程中不会被触及,因此可以在不影响工作流程的情况下提前进行转译。有没有办法在不向 AngularJS 应用程序添加转译器的情况下将这些组件添加到 AngularJS 应用程序中?

0 投票
1 回答
3192 浏览

angularjs - Angular 2+ 找不到 Angular 1.X 来引导

我正在尝试使用 Angular 2+(在撰写此问题时为 Angular 4.1.0)引导 Angular 1.X 应用程序。我遵循了T 的在线指南,但似乎无法取得进展。

我使用的是 ES2015+(通过 Babel 编译)和 TypeScript 的混合体。一切都正确编译,我可以分别成功运行 Angular 1 和 Angular 2。如果有区别的话,它们会使用 Webpack 一起编译。

这是我的 Angular 1.X 入口文件 ( app.ts) 的大致样子:

为简单起见,我从主应用程序中删除了所有依赖项,以确保它不是 run/config 函数或依赖项之一。我已经使用 config/run 函数进行了测试,以查看是否有任何运行或抛出错误,但它们没有。

然后我有一个 Angular 2+ 应用程序的入口文件(我也将它用作 Webpack 的入口文件)main.ts,它看起来像这样:

console.log('app', app)该过程在该行之后失败。日志显示,这app确实是 Angular 1.X 应用程序的一个实例。但是引导过程仍然失败。

关于我做得不对的任何想法?

编辑

这是我的app.module文件:

编辑2

我的预感是 Angular 2+ 依赖于 AngularJS 1.X 已经在窗口对象上。我在一个模块中运行 AngularJS 1.X。我会在工作时更新。我在下面回答了一些评论。目前,我正在使用尽可能简单的示例,对于 AngularJS 1.X,我实际上正在运行一个准系统应用程序,如果它被引导通过.run

编辑 3

我在下面发布了一个答案。它归结为main.ts文件(入口文件)中导入的顺序。只需在导入之前导入 AngularJS 1.X 应用程序即可zone.js解决问题。

0 投票
1 回答
1536 浏览

angularjs - 如何用角度 1 配置角度 4?

我设计了一个使用带有角度材料的 angularjs 的网络应用程序。现在,我想在 angularjs web 应用程序中将一些部分转换为 angular 4。我已经为 Angular 4 添加了 npm 包。但是 scss 文件没有得到应用。如何解决这个问题?谢谢..!

0 投票
2 回答
1139 浏览

angularjs - 在 ng-upgrade 中使用量角器

我正在将我的 AngularJS (1.6) 应用程序迁移到 Angular (4),现在有一个混合应用程序,由 NgUpgrade 引导。

但是,这似乎完全破坏了我的量角器测试。

失败:等待异步 Angular 任务在 11 秒后完成超时。这可能是因为当前页面不是 Angular 应用程序。有关更多详细信息,请参阅常见问题解答:https ://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular

在等待带有定位器的元素时 - 定位器:By(css selector, .toggle-summary-button)

混合应用程序更改

该应用程序似乎运行良好,AngularJS 和 Angular 组件都按预期工作。我在引导过程中所做的更改是:

ng-app1从 html 标记中删除:

<html lang="en" *ng-app="myapp">

2 添加了一个 AppModules (@NgModule) 等。

3 使用 NgUpgrade 引导应用程序:

量角器测试

基于上述错误,问题似乎与 Protractor 在等待 Angular 时所做的任何事情有关。我有一个 beforeEach 块,它加载登录页面,填写详细信息并登录。奇怪的是它仍在打开页面并在用户名字段中输入文本,但随后它无法继续前进。

我不明白为什么这有什么不同,而且周围的任何改变似乎都没有帮助,所以任何指导都将受到欢迎!

我试过了,没有成功:

  • 将“rootElement:'body'”添加到我的量角器配置文件中
  • 在我的量角器配置文件中添加“ng12Hybrid:true” - 我收到一条消息,说它不再需要它,因为它会自动检测到。
  • allScriptsTimeout设置从 11000 增加到 60000 并且仍然超时。
  • 关闭waitForAngularEnabled设置。这解决了登录字段的问题,但是我的 http 模拟都不起作用并且测试失败。
0 投票
0 回答
42 浏览

angularjs - 尝试将 Angularj1.5 组件导入 Angularjs2.0 可能吗?

我正在从 Angular1 迁移到 Angular2。

我可以轻松地在 angular1 中导入 angular2 组件,但我无法在 Angularj2 中运行 Angularjs1 组件并收到错误消息“在 AngularOneComponet 上找不到指令注释”

从错误消息来看,似乎不可能在 angular2 组件上运行 angular1 组件,但如果有人知道如何使它工作,请告诉我。

0 投票
1 回答
746 浏览

angular - 升级的 Angular 服务在 Angular 组件中不起作用:无法获得未定义的错误

我正在努力将 AngularJS 应用程序升级到 Angular。但我现在卡住了。我试图让角度来处理回家的路线并且不起作用。该错误似乎来自升级后的服务。

当我让 angularJS 处理路线时,它使用相同的组件可以正常工作。

App-routing.module

ajs-升级-providers.ts

统计服务

错误

我只是不明白为什么让 AngularJS 处理它似乎很顺利的路线,但如果我让 Angular 处理它,它就会分崩离析。任何帮助将不胜感激

编辑:添加了 customer-stats.ng2.component

0 投票
1 回答
13606 浏览

javascript - 将 AngularJS 迁移到 Angular 4,5(带演示)

我正在研究将当前 Angular 1 项目迁移到 Angular 4 的方法。

选项是ng-forwardngUpgraderewrite

我正在考虑重写它,但有一个转折。

  • 我保留当前的应用程序
  • 开始写与之平行的新的
  • 所有新的 NG4 重写,我想使用......换句话说,一点一点。

有没有人尝试过或知道更好的方法?

0 投票
2 回答
233 浏览

angularjs - 在 Angular 1 中使用 Angular 2 页面

目前我们已经在 Angular 1.X 中开发了应用程序,但我们不想从 Angular 1.X 迁移到 Angular 2,因为它是非常浪费的应用程序,因此需要更多的努力。我们想要其他方式。我们可以在 Angular 1.X 应用程序中使用 Angular 2 功能吗?将来创建的任何页面都应该在 Angular 2 中,但需要与 Angular 1.X 并排工作。就像从 Angular 1.X 中调用来自 Angular 2 的新路由或新组件一样。请让我知道它是否可能。

谢谢