问题标签 [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.
angular - 从 2 升级后,角度核心变化检测的 Angular 4 错误不同
我有一个升级到 ng4 的 ng2 网站。在构建时,我收到一个错误
(15,48):错误 TS2304:找不到名称“Iterable”。
这是唯一的错误,我从来没有在 ng2 中遇到过这个错误。
我不确定从哪里开始调试。任何帮助,将不胜感激。
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 文件的任何其他方式?
angularjs - 并排运行 Angular 和 AngularJS 框架
我找到了描述如何将 Angular (2) 组件集成到 AngularJS 中的资源,但所有这些都涉及像 Angular 项目一样设置 AngularJS 项目,需要来自 TypeScript 的转译器,需要 ES6,需要导入语句。我想在我的 AngularJS 应用程序中简单地使用 Angular 组件,而不会破坏我现有的工作流程。这可能吗,如果可以,我该如何实施?我以为这是升级模块的目的,但是我看到的所有教程都需要 AngularJS 应用程序中的 import 语句,这需要一个转译器。如果 Angular 应用程序需要提前转译,那没关系,但 AngularJS 应用程序无法转译,因为它运行在 django 服务器上,我不想用转译器运行另一台服务器。
需要明确的是,我当前的 AngularJS 应用程序由 django 提供服务。我想包含一些 Angular 组件。这些在开发过程中不会被触及,因此可以在不影响工作流程的情况下提前进行转译。有没有办法在不向 AngularJS 应用程序添加转译器的情况下将这些组件添加到 AngularJS 应用程序中?
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
解决问题。
angularjs - 如何用角度 1 配置角度 4?
我设计了一个使用带有角度材料的 angularjs 的网络应用程序。现在,我想在 angularjs web 应用程序中将一些部分转换为 angular 4。我已经为 Angular 4 添加了 npm 包。但是 scss 文件没有得到应用。如何解决这个问题?谢谢..!
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-app
1从 html 标记中删除:
<html lang="en" *ng-app="myapp">
2 添加了一个 AppModules (@NgModule) 等。
3 使用 NgUpgrade 引导应用程序:
量角器测试
基于上述错误,问题似乎与 Protractor 在等待 Angular 时所做的任何事情有关。我有一个 beforeEach 块,它加载登录页面,填写详细信息并登录。奇怪的是它仍在打开页面并在用户名字段中输入文本,但随后它无法继续前进。
我不明白为什么这有什么不同,而且周围的任何改变似乎都没有帮助,所以任何指导都将受到欢迎!
我试过了,没有成功:
- 将“rootElement:'body'”添加到我的量角器配置文件中
- 在我的量角器配置文件中添加“ng12Hybrid:true” - 我收到一条消息,说它不再需要它,因为它会自动检测到。
- 将
allScriptsTimeout
设置从 11000 增加到 60000 并且仍然超时。 - 关闭
waitForAngularEnabled
设置。这解决了登录字段的问题,但是我的 http 模拟都不起作用并且测试失败。
angularjs - 尝试将 Angularj1.5 组件导入 Angularjs2.0 可能吗?
我正在从 Angular1 迁移到 Angular2。
我可以轻松地在 angular1 中导入 angular2 组件,但我无法在 Angularj2 中运行 Angularjs1 组件并收到错误消息“在 AngularOneComponet 上找不到指令注释”
从错误消息来看,似乎不可能在 angular2 组件上运行 angular1 组件,但如果有人知道如何使它工作,请告诉我。
angular - 升级的 Angular 服务在 Angular 组件中不起作用:无法获得未定义的错误
我正在努力将 AngularJS 应用程序升级到 Angular。但我现在卡住了。我试图让角度来处理回家的路线并且不起作用。该错误似乎来自升级后的服务。
当我让 angularJS 处理路线时,它使用相同的组件可以正常工作。
App-routing.module
ajs-升级-providers.ts
统计服务
错误
我只是不明白为什么让 AngularJS 处理它似乎很顺利的路线,但如果我让 Angular 处理它,它就会分崩离析。任何帮助将不胜感激
编辑:添加了 customer-stats.ng2.component
javascript - 将 AngularJS 迁移到 Angular 4,5(带演示)
我正在研究将当前 Angular 1 项目迁移到 Angular 4 的方法。
选项是ng-forward、ngUpgrade或rewrite。
我正在考虑重写它,但有一个转折。
- 我保留当前的应用程序
- 开始写与之平行的新的
- 所有新的 NG4 重写,我想使用......换句话说,一点一点。
有没有人尝试过或知道更好的方法?
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 的新路由或新组件一样。请让我知道它是否可能。
谢谢