问题标签 [angular-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 回答
1211 浏览

angular-ui-router - Ui-router 子状态未加载到降级的 Angular 组件中

我有一个混合/延迟加载的 Angular/AngularJS 应用程序,它使用新的 Angular 路由器和 ui-router 版本 0.4.2 以及并行出口/视图。为了做到这一点,我遵循了Victor Savkin 的 Lazy Loaded AngularJS 指南。总的来说,这运行良好,我可以在 Angular 路由和 AngularJS 路由之间切换。但是,我遇到了第一次打开页面时未显示 ui-router 子视图的问题。

如果尝试在启动时加载子状态,此问题只会影响状态。在路线之间导航不会遇到同样的问题。我还确定它仅在父状态模板被降级的 Ng2 组件包装时出现在路由中。

状态和模板定义

跟踪状态更改事件,我能够确定子视图被临时加载但随后被删除。

状态事件日志

使用<ng-content>导致 ui-router 无法正确呈现的组件怎么样?我可以做些什么来纠正这个问题?

0 投票
1 回答
163 浏览

angular - 升级提供接口的 AngularJS ServiceProvider

$get我正在尝试升级 AngularJS 服务提供者(TranslateProvider),它从它的函数返回一个接口的实例。

问题是,在 Angular 提供程序对象 (translateProvider) 中,该provide字段应该是Translate但不能使用,因为 TypeScript 接口仅用于编译时。这是我得到的错误:

这是源代码的要点:

0 投票
1 回答
187 浏览

angularjs - Angular 2+ 对 angularJs 的服务

我正在尝试转换 Angular 2+ 服务并在 angularJs 项目中使用它。

应用程序/users.service.ts

然后我用 rollup 把它转换成 js

我添加 downgradeInjectable 将 angular2+ 服务转换为 angularJs

接下来我尝试在angularJs中加载它

我错过了一些东西,因为它不起作用:/

我找不到资源来做这件事,所有人都试图将 ng1 服务转换为 ng2,但不是相反。

有人可以帮忙吗?

谢谢

0 投票
0 回答
248 浏览

angular - Angular UpgradeModule $rootScope.$digest 错误,即使我们没有手动触发摘要

我们有一个超级奇怪的登录错误,似乎是由Angular 的 UpgradeModule 中的这一行引起的,所以我对该行有疑问。

为什么是:

不是这样的:

?

为什么没有检查该摘要的阶段?

因为在第 214 行甚至有一条评论说

“在下一个 VM 轮次中运行回调 - $interval 调用 $rootScope.$apply,如果在同一个 vm 轮次中,在 NgZone 中运行回调将导致 '$digest already in progress' 错误”

该代码假设,因为它一直等到下一个滴答声,所以没有 $digest 阶段仍在发生。

我们没有使用 $interval,但显然在没有 setTimeout 的情况下调用这些行会导致我们看到的确切错误,所以不应该发生某种相位检查吗?

(而不是假设超时解决了问题)......这似乎是一个竞争条件。

这被标记为 angular 和 angularjs 的原因是因为这是 angular 的升级模块。升级模块在 angular 中使用 angularjs。

0 投票
3 回答
880 浏览

angularjs - downgradeModule 不会在混合应用程序中启动 Angular5 部分

Angular5 引入了一种将应用程序从 AngularJS 升级到 Angular 的新方法 - downgradeModule. 它应该解决在这种混合应用程序中急切更改检测的问题。到目前为止,我在 Angular4 中UpgradeModule成功使用了,但由于更改检测,它导致了一些性能问题。现在我正在尝试使用downgradeModule. 在这种方法中,首先启动 AngularJS,下一个 downgradeModule 启动 Angular。这样 AngularJS 在 AngularZone 之外运行,应该冷静下来检测什么。

main.ts这被指出.angular-cli.json为“主要”

现在,AngularJS 启动良好,但 Angular不行。控制台没有错误,没有提示。只是主选择器,例如。<my-app>不评估。app.module.ts在以前的工作版本的上下文中没有任何变化。

我使用了一些 Angular 文档草案,因为主要的文档没有说明downgradeModule. https://pr18487-aedf0aa.ngbuilds.io/guide/upgrade-performance

有谁知道为什么 Angular5 部分没有启动?

仅供参考,以前的main.tswith UpgradeModulewhich 的外观效果很好,但是变化检测。

0 投票
0 回答
114 浏览

angularjs - 升级 AngularJS 应用程序以包含 Angular 后 - marcoTask 'RequestAnimationFrame' 异常

我们已经将一个大型 AngularJS 应用程序升级到 Angular。升级我的意思是引导 Angular 应用程序,然后引导 AngularJS。

在 Chrome 上似乎一切正常,但是在使用 FireFox 时,我们经常会遇到以下异常:

这是完整的堆栈跟踪:

0 投票
2 回答
189 浏览

angularjs - 使用 ng-metadata 完成嵌入

我正在使用 AngularJs 1.6 和 ng-metadata 逐步将 AngularJS 组件迁移到 Angular。

我需要构建一个能够嵌入一些 HTML 的组件,我希望我可以使用 ng-metadata 提供的东西,因为当我们升级到 Angular 时它会更容易。不幸的是,我在文档中找不到任何关于此的内容。

使用嵌入的 ng-metadata 编写的 AngularJS 组件示例将帮助我开始使用它。

0 投票
1 回答
787 浏览

angularjs - 在 Angular 中使用 AngularJS 服务

我正在 Angular 项目中搜索包含 AngularJS 服务。

这是我的 main.ts:

这是我的 app.module.ts:

错误是:

0 投票
0 回答
139 浏览

angular - 角度路由停止使用 ngUpgrade

我正在将 AngularJS 1.5.X 应用程序升级到 Angular 4.3.0。我设法成功地引导应用程序并在 AngularJS 屏幕上使用 Angular 组件,直到我必须将 AngularJS 服务升级到 Angular 才能在 Angular 组件中使用。我必须按照升级指南中的描述创建一个提供程序,然后我开始收到 AngularJS $injector 未定义的错误。

所以我将 AngularJS 引导逻辑移动到 AppModule 而不是 main.ts。之后错误消失了,但路由已经停止工作,所以 ng-view 没有效果。

我的代码 App.Module.ts 如下:-

main.ts

应用组件.ts

索引.html

0 投票
0 回答
253 浏览

angularjs - 如何在 Angular 组件(Angular 升级、混合应用程序)中获取 NgModelController (AngularJS) 实例?

AngularJS 组件中可能需要 NgModelController。像要求这样的东西:

是否可以在 Angular 组件中需要 NgModelController(来自 AngularJS)实例(就像在 AngularJS 中一样)。

我有一个混合应用程序。我想在 AngularJS 组件的模板中使用 Angular 组件,例如:

我有一些 AngularJS 组件使用如下:

并且在a1-cmp组件内部使用了类似$setViewValue的方法。所以现在我将该组件重写为 Angular,但我需要支持内部和外部组件之间的同步机制。这不是问题,因为(内部和外部)组件都是 AngularJS。现在内部是 Angular,但外部是 AngularJS 组件。

有可能吗?我需要这个来影响 Angular 组件代码中的 AngularJS NgForm 实例状态(原始/有效性)。

有不同的解决方法可以做到这一点(最简单的是将 ngForm 实例传递给 Angular 组件并调用方法)