问题标签 [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 投票
6 回答
10020 浏览

javascript - 在 angular / angularjs 混合应用程序中将 downgradeModule 与 downgradeInjectable 结合使用会导致错误

使用 Angular 5.0,升级模块现在可以选择使用 downgradeModule,它在 angular 区域之外运行 angularjs。在对此进行试验时,我遇到了使用 downgradeInjectable 的问题。

我收到错误:

未捕获的错误:在引导 Angular 模块之前尝试获取 Angular 注入器。

在 Angular js 中引导 Angular 工作正常

然而...

由于在初始化 angularjs 之后进行引导,我无法再让降级注入工作。

服务要降级

降级注射尝试

当“downgradeInjectable(MyService) 运行时,角度注入器尚不可用,因为角度尚未被引导。因此错误:

未捕获的错误:在引导 Angular 模块之前尝试获取 Angular 注入器。

有谁知道我该如何解决这个问题?

0 投票
0 回答
532 浏览

angularjs - 导入 UpgradeAdapter 以升级到 Angular 4 时出错(导入声明只能在命名空间或模块中使用)

我开始将 AngularJS 应用程序升级到 Angular 4,我正在尝试使用(应用程序的“入口”文件)中这样的升级适配器来引导它——函数在一个闭包中,在一个独立的app.ts 文件:

app.ts(以前是 App.js):

初始导入 UpgradeAdapter 时出现错误:

我需要做什么?我是否以某种方式使其可用于“portalHomeApp”模块,或者我现在只是需要一个命名空间,因为我正在使用 TypeScript?

0 投票
2 回答
698 浏览

angular - 无法解析应用模块的参数

我正在尝试运行角度为 1.6 和 5 的混合应用程序。手动引导有效。一旦我尝试引导混合应用程序,就会收到以下错误:

compiler.js?7e34:466 Uncaught Error: Can't resolve all parameters for AppModule: (?). 在 CompileMetadataResolver._getDependenciesMetadata 处的 syntaxError (eval at (app.bundle.js:1852), :684:34) 在 CompileMetadataResolver._getTypeMetadata (eval at ( app.bundle.js:1852), :15600:26) 在 CompileMetadataResolver.getNgModuleMetadata (eval at (app.bundle.js:1852), :15399:24) at JitCompiler._loadModules (eval at (app.bundle.js: 1852), :33760:87) 在 JitCompiler._compileModuleAndComponents (eval at (app.bundle.js:1852), :33721:36) 在 JitCompiler.compileModuleAsync (eval at (app.bundle.js:1852), :33637: 37) 在 CompilerImpl.compileModuleAsync (eval at (app.bundle.js:1864), :245:49) 在 PlatformRef.bootstrapModule (eval at (app.bundle.js:229), :5646:

应用程序.ts

platformBrowserDynamic().bootstrapModule(AppModule);

app.module.ts

tsconfig.json

我正在使用 webpack。这是我的配置的一部分:

0 投票
0 回答
552 浏览

angularjs - 翻译指令在角度不起作用

我目前正在开发一个角度混合应用程序(angular + angularJs)。该应用程序使用 angular-gettext 和 ngx-translate 进行翻译。两者都在自己的运行时工作,但是当我将 Angular 组件降级为 angularJs 组件时,我无法使其工作。translate我想知道这两个指令之间是否存在不匹配?

0 投票
1 回答
985 浏览

angularjs - 变更检测在降级的 Angular 组件中不起作用

我正在使用 @angular/upgrade 模块将用 AngularJS 编写的相当大的应用程序转换为 Angular 应用程序。目前,AngularJS 的每个组件都在 Angular 应用程序中按预期运行。该应用程序正在像这样被引导:

但是,我已经开始在 Angular 中重写组件,并且在尝试让那些降级的组件正常工作时遇到了问题。我正在使用 ui-router 将组件映射到如下状态:

重写的组件正在降级,如下所示:

SomeComponent 只是一个常规的 Angular 组件。

它显示得很好,正在渲染模板并且一切正常,但是,更改检测似乎不起作用。更改检测器似乎在渲染视图后不久运行一次,但是在那之后,除非我手动调用它,否则它不会再次运行。NgZone.isInAngularZone()如果在降级组件中的任何位置运行,则返回false,我不确定这是否是有意的。如果我注入ChangeDetectorRef并运行detectChanges任何更改组件字段的方法,则会检测到更新并很好地呈现。(input)="changeDetectorRef.detectChanges()"然而,从长远来看,将一个附加到每个输入,并调用detectChanges()几乎任何可以做任何事情的函数,这将是太多的工作。

有什么我想念的吗?如果我没有提供足够的信息,我可以尝试对运行的问题进行最少的复制,但这可能会有点工作,所以我想先这样问。

0 投票
0 回答
549 浏览

angularjs - 如何使用 Angular 5.2 升级 angularjs 服务

目前在混合 angularjs 1.4/angular 5.2 应用程序中升级 angularjs 服务的正确方法是什么,以便我可以在组件中作为提供者使用它?

两个代码库都是打字稿,我使用新的 downgradeModule 来降级角度组件,以控制摘要的数量并且不想破坏它。

我为 Angular js 应用程序生成了一个类型定义文件,以便可以假定所有类都是可访问的。

编辑: 我尝试将服务包装在像 ValueProvider 这样的对象中(我必须用 getter 和 setter 将整个东西包装在另一个对象中以返回它,以便隐藏来自 Angular 的函数调用,它不喜欢函数调用装饰师)。继承人的代码没有 trixing 来解释这个想法。

但是当我尝试将它注入组件构造函数时会出错。

如果我只将它添加到构造函数中,我会得到:[Angular] Can't resolve all parameters for SeparatorComponent in d:/Source/Prevero/Everest/src/com/prevero/everest/oneclient/src/modules/app_components/separators/separator.component.ts: (?).

如果我将它添加到提供者数组中,我会得到[Angular] Invalid providers for "SeparatorComponent in d:/Source/Prevero/Everest/src/com/prevero/everest/oneclient/src/modules/app_components/separators/separator.component.ts" - only instances of Provider and Type are allowed, got: [?null?]

0 投票
1 回答
490 浏览

angularjs - 可以在实时站点上运行混合 Angular+AngularJS 应用程序吗?

我有一个AngularJS应用程序,我很想升级到最新版本的Angular. 但是,问题在于该应用程序使用了十几个不支持Angularv.2 的不同 3rd 方库。

可以在实时站点上运行混合Angular+应用程序吗?AngularJS“OK”是指与运行纯 AngularJS 或 Angular 应用程序相比,这对性能没有严重影响。

Angular 文档清楚地说明了如何执行从 AngularJS 到 Angular 的转换,但不清楚是否应该在实时项目中使用 ngUpgrade。

0 投票
0 回答
308 浏览

angularjs - 在 Angular 1 应用程序中使用 Angular 5 服务调用

在我的场景中,我有一个复杂的 angular 1 应用程序,它正在使用另一个脚本文件(在启动 URL 时直接下载的单独的单个 JS 文件)。这个脚本文件也是用 Angular 1.6 编码的,我们现在已经将它迁移为 Angular 5 组件。使用 webpack,我生成了 2 个捆绑文件(vendor.js 和 main.client.js)。

我的问题是我想添加这些脚本并从 angular 1 应用程序调用 angular 5 服务调用,而在 angular 1 应用程序中没有太多代码更改。如果我在 index.html 中添加 Angular 5 的捆绑脚本,它会在浏览器中作为单独的应用程序启动。但我需要的是仅通过 Angular JS 控制器调用 Angular 5 中的特定服务。

我能够实现将其保留为混合应用程序的概念。但这对我没有帮助。请分享您的想法和经验。这对我真的很有帮助,因为我在过去的 1 周里都在头晕目眩。在此先感谢。

0 投票
1 回答
193 浏览

angularjs - 混合应用程序中的第 3 方 Angular 4 控件

我正在尝试将 AngularJS 1.5 应用程序升级到 Angular 4。我已经成功地引导应用程序并在 AngularJS 组件模板中加载了一个 Angular4 组件。

现在我正在尝试使用第 3 方 Angular4 树组件,但它无法加载它。我知道降级后只有根模块中定义的组件/服务可用,但有没有办法在混合应用程序中使用第 3 方 Angular4 组件?

如果不是,那是否意味着在完整的应用程序转换为 Angular 4 之前,不能在混合应用程序中使用第三方 Angular 4 组件和服务?这个假设是否正确/

0 投票
1 回答
774 浏览

angularjs - 将 ng1 模板放在由 angular-cli 构建的 Angular 混合应用程序中的什么位置?

我正在尝试从 angular.js 应用程序中构建一个角度混合应用程序。我正在关注官方文档(https://angular.io/guide/upgrade)。我到达并完成了这一步:https ://angular.io/guide/upgrade#bootstrapping-hybrid-applications 。

我正在使用 angular ui-router 0.3.1 来处理我的应用程序的路由。因此,使用主模块上的 config 函数和 $stateProvider 服务,我将每个路由映射到 angular.js 控制器和由 templateUrl 参数指定的模板。

我的应用程序似乎可以正确启动,但无法加载模板,因为找不到它们(404 错误)。ng build这是正常的,因为当我使用angular-cli 命令行时,它们没有导入到构建我的应用程序的 dist 文件夹中。

当我的 Angular 应用程序由 angular-cli 构建时,如何配置我的应用程序以便将我的 angular.js html 模板复制到 dist 文件夹中?

提前致谢!