问题标签 [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.
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 组件:usermenu
和item-list
. 他们都使用任意数量的服务。
随着时间的推移,会发生两件事:
- 我转换
usermenu
为 Angular 组件,但我没有降级组件 - 我创建了一个新的 Angular 组件(即
signout-button
:)
考虑我的新模板:
- 以下模板会引导 Angular 和 AngularJS 组件吗?
- 还是我需要降级这两个 Angular 组件才能正常工作?
ngUpgrade 指南提到了“AngularJS OWNS the root component”之类的东西。要在 AngularJS 中使用 Angular 组件,您需要对其进行降级。要在 Angular 中使用 AngularJS 组件,需要对其进行升级。但是由于我有三个根组件,它会起作用吗?
我当然试过了,但我无法让它工作。我有一种感觉,AngularJS 拥有的“根组件”不是找到的组件之一,而是应用程序被引导的元素(document
在我的例子中)。
有人可以确认这一点,所以我知道降级组件是唯一的方法,或者也许在使用 Angular 和 AngularJS 组件“彼此相邻”引导时指出我正确的方向?
javascript - Angular 混合应用程序中的依赖注入(AngularJS 和 Angular 5)
我在 ngUpgraded AngularJS 控制器中遇到了依赖注入问题。我想在我的混合应用程序中使用 toastr 和 Handlebars.js 模块,但我每次尝试都会给我错误(handlebars 是处理很久以前编写的来自服务器端的外部脚本所必需的,这就是我需要使用它的原因一些反模式解决方案)。最后一个脚本(提供程序)仅适用于 jQuery 使用。
AngularJS 控制器:
AngularJS 模块:
Angular 5 模块:
Angular 5 提供者:
vue.js - 将 Vue.js 迁移到 Angular 6。欢迎提示?
需要从 vue.js 迁移到 Angular 6。是否有更好的方法开始并且需要最佳实践作为两个框架的新手。
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\**
。
如何将文件夹中的所有文件包含在内,避免一一包含所有文件。
请指导。谢谢。
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有关吗?
我现在的错误是:
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 什么没有正确完成以及如何修复这个错误?
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时,这是我看到的路由器跟踪:
并且测试组件只是不渲染。
我需要一些帮助,想不出其他可以尝试的方法。
javascript - 与混合应用程序一起使用时,Angularjs 摘要正在进行错误
所以,我有一个使用 angularjs 1.7 和 angular 5.x 的非常庞大的混合应用程序。我正在使用 ngUpgrade 模块来运行这两个应用程序,但是我遇到了一个问题,如果我使用 href 导航到不同的路由(在 angularjs 路由器中定义),我得到摘要周期已经在进行中,它会破坏整个应用程序并且没有任何负载(我猜角度此时正在区域之外运行)。我可以通过使用 $timeout 为其他事件(单击等)解决此问题,但我真的希望 href 现在可以工作。
angularjs - 是否可以使用 angular-cli `ng test` 运行 angularJS 单元测试?
我在一个 AngularJS 1.6.X ES6 应用程序上工作。我使用 Mocha 和 Sinon 在其上编写和运行单元测试。
我开始使用 ngUpgrade 混合/升级此应用程序,以便以角度编写新组件。所以现在,我得到了一些 angularJS 模块和一些 angular 模块。我使用@angular-builders/custom-webpack
withbabel-loader
并ng-annotate-loader
正确加载 AngularJS 模块。
我想在运行新 Angular 模块的单元测试的同时运行 AngularJS 模块的现有单元测试。理想情况下,我还希望有一个 AngularJS 和 Angular 模块的通用代码覆盖率报告。
是否可以使用 angular-cli 来做到这一点ng test
?您推荐哪种 Karma 配置?