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

angularjs - 我可以同时运行一个 AngularJS 组件和一个 Angular 组件吗?

我们有一个 AngularJS 应用程序。“主”模板超出了它的范围:它是由 CMS 生成的。我们不知道页面会是什么样子。AngularJS 应用程序在任何有 AngularJS 组件的地方启动。

它不是 SPA,我们只创建交互式组件,这些组件在页面刷新出现之前一直存在。

我们引导应用程序angular.bootstrap(document, ['App'], { strictDi: true });

一个非常精简的版本:

我们想迁移到 Angular(撰写本文时为 6 个)。我使用 AngularJS 应用程序创建了一个应用程序,cli并将生成的应用程序与我们的 AngularJS 应用程序合并。

然后我按照https://angular.io/guide/upgrade上的 ngUpgrade 教程进行操作。虽然它已经过时(仍然使用 SystemJS!)我设法启动并运行:我的 AngularJS 应用程序由 Angular 引导。

在上面提到的示例中,我有两个 AngularJS 组件:usermenuitem-list. 他们都使用任意数量的服务。

随着时间的推移,会发生两件事:

  • 我转换usermenu为 Angular 组件,但我没有降级组件
  • 我创建了一个新的 Angular 组件(即signout-button:)

考虑我的新模板:

  • 以下模板会引导 Angular 和 AngularJS 组件吗?
  • 还是我需要降级这两个 Angular 组件才能正常工作?

ngUpgrade 指南提到了“AngularJS OWNS the root component”之类的东西。要在 AngularJS 中使用 Angular 组件,您需要对其进行降级。要在 Angular 中使用 AngularJS 组件,需要对其进行升级。但是由于我有三个根组件,它会起作用吗?

我当然试过了,但我无法让它工作。我有一种感觉,AngularJS 拥有的“根组件”不是找到的组件之一,而是应用程序被引导的元素(document在我的例子中)。

有人可以确认这一点,所以我知道降级组件是唯一的方法,或者也许在使用 Angular 和 AngularJS 组件“彼此​​相邻”引导时指出我正确的方向?

0 投票
0 回答
417 浏览

javascript - Angular 混合应用程序中的依赖注入(AngularJS 和 Angular 5)

我在 ngUpgraded AngularJS 控制器中遇到了依赖注入问题。我想在我的混合应用程序中使用 toastr 和 Handlebars.js 模块,但我每次尝试都会给我错误(handlebars 是处理很久以前编写的来自服务器端的外部脚本所必需的,这就是我需要使用它的原因一些反模式解决方案)。最后一个脚本(提供程序)仅适用于 jQuery 使用。

AngularJS 控制器:

AngularJS 模块:

Angular 5 模块:

Angular 5 提供者:

0 投票
3 回答
1538 浏览

angularjs - 如何从 Angular 1.4 升级到 Angular 5?

在此处输入图像描述要从 Angular 1.4 升级到 Angular 5,可以使用 ngupgrade 并遵循增量方法,或者严格适用于从 1.5 版本开始使用 ngupgrade。根据图像,提到的先决条件 1.5 用于 ngUpgrade。

0 投票
0 回答
342 浏览

vue.js - 将 Vue.js 迁移到 Angular 6。欢迎提示?

需要从 vue.js 迁移到 Angular 6。是否有更好的方法开始并且需要最佳实践作为两个框架的新手。

0 投票
1 回答
544 浏览

javascript - 将 AngularJs javascript 文件包含到 Angular cli 中

我有一个旧的 Angular JS 应用程序,现在使用升级模块与几个新的 Angular 5 组件协同工作。在此处关注此帖子

目前,我需要将所有 AngularJs 代码包含到我的index.html. 但是,我想在脚本部分的 angular-cli.json 中包含所有 JS 文件(超过 200 个),如下所示:

但是,ng-build给我错误no such file or directory:\appjs\**

如何将文件夹中的所有文件包含在内,避免一一包含所有文件。

这是文件夹结构的图像。在此处输入图像描述

请指导。谢谢。

0 投票
1 回答
1439 浏览

javascript - Angular 6 混合应用程序不加载 AngularJS 组件

我的目标是使用 Angular 6 将大型 AngularJS 版本 1.7.3 升级到混合应用程序。我完成了准备阶段,我必须将所有控制器/指令转换为 AngularJS 组件。我用命令行创建了一个新的 Angular 6 项目框架:

我将 AngularJS 遗留代码复制粘贴到 src/ng1 文件夹中的 Angular 6 应用程序中。

这就是我的 app.module.ts 的样子,以便从 Angular 6 引导 AngularJS 1.x 应用程序:

当我执行服务时,没有错误,我可以看到 Angular 6 应用程序重定向到默认的 AngularJS 路由,即 /login。这是我的 AngularJS 路由文件:

如您所见,我有一条到 /login 的默认路由,Angular 6 应用程序知道如何到达那里。我现在遇到的问题是:

控制台中没有错误,但我有一个空白页面,似乎来自 AngularJS 的组件没有正确加载,因此在浏览器上没有显示任何内容。我试图用一个简单的替换模板:

它会正确显示。任何人都知道为什么Angular 6没有加载我的AngularJS组件,这与UIRouter有关吗?

我现在的错误是:

0 投票
1 回答
733 浏览

angularjs - Angular 从 1.6.6 升级到 6 时出现 $Injector 错误

我使用 Webpack 4 从 Angular.Js 1.6.6 升级到 Angular 6:

创建了自定义别名,为 tsconfig 添加了正确的路径,Webpack 构建通过并产生输出,但是当应用程序在浏览器中启动时,控制台中的错误弹出窗口:ngRoute is missing or wrong ng module components 什么没有正确完成以及如何修复这个错误?

0 投票
2 回答
1790 浏览

angularjs - @angular/router 在 angular.js 应用程序中不起作用

我正在将一个大的 angular.js 应用程序(使用 ui-router)一点一点地迁移到 angular,我选择使用 angular.js 应用程序作为基础,一次迁移一个不同的路由,这样一旦我'完成我立即将所有内容切换为角度。

这些是我遵循的步骤:

在我的 main.ts 文件中引导 angular.js 应用程序:

在我的 index.html 里面

这工作正常。

在我的主要 angular.js 组件中,我添加了降级的主要 Angular 组件的标签:

这就是我的主模块的配置方式

到目前为止一切正常。我可以在 angular.js 应用程序中看到我的 angular 组件。

当我将其添加到我的主根组件时,问题就出现了,即使路由匹配,我也可以看到路由器插座渲染,但旁边没有任何内容。

当我将浏览器指向/#/dashboard时,这是我看到的路由器跟踪:

路由器追踪

并且测试组件只是不渲染。

在此处输入图像描述

我需要一些帮助,想不出其他可以尝试的方法。

0 投票
1 回答
471 浏览

javascript - 与混合应用程序一起使用时,Angularjs 摘要正在进行错误

所以,我有一个使用 angularjs 1.7 和 angular 5.x 的非常庞大的混合应用程序。我正在使用 ngUpgrade 模块来运行这两个应用程序,但是我遇到了一个问题,如果我使用 href 导航到不同的路由(在 angularjs 路由器中定义),我得到摘要周期已经在进行中,它会破坏整个应用程序并且没有任何负载(我猜角度此时正在区域之外运行)。我可以通过使用 $timeout 为其他事件(单击等)解决此问题,但我真的希望 href 现在可以工作。

0 投票
1 回答
344 浏览

angularjs - 是否可以使用 angular-cli `ng test` 运行 angularJS 单元测试?

我在一个 AngularJS 1.6.X ES6 应用程序上工作。我使用 Mocha 和 Sinon 在其上编写和运行单元测试。

我开始使用 ngUpgrade 混合/升级此应用程序,以便以角度编写新组件。所以现在,我得到了一些 angularJS 模块和一些 angular 模块。我使用@angular-builders/custom-webpackwithbabel-loaderng-annotate-loader正确加载 AngularJS 模块。

我想在运行新 Angular 模块的单元测试的同时运行 AngularJS 模块的现有单元测试。理想情况下,我还希望有一个 AngularJS 和 Angular 模块的通用代码覆盖率报告。

是否可以使用 angular-cli 来做到这一点ng test?您推荐哪种 Karma 配置?