问题标签 [angular-hybrid]
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.
javascript - Angular 6路由器未使用angularjs $location服务检测Url更改
我有一个使用 Angular 6 和 AngularJS 1.6.4 的混合 Angular 应用程序。我已经在 Angular 模块中定义了所有路由,并使用 UpgradeComponent 升级了 AngularJS 组件,如升级指南中所述。
当我尝试使用 $location 服务从一个 AngularJS 视图导航到另一个 AngularJS 视图时,浏览器窗口中的 url 会发生更改,但 Angular 路由器没有检测到 url 更改,并且 UI 中仍然加载相同的视图。我试图订阅路由器事件和位置服务事件,没有一个被触发。
但是,当我单击其他链接时,它会导航到该链接。同样在移动到新链接后,当我单击浏览器的后退按钮时,它会将应用程序导航到之前不起作用的链接。例子:
- 当前网址是http://localhost/#/App/View1
- 单击指向http://localhost/#/App/View2的链接。Url 已更新,但 View1 仍加载到 UI 中。
- 单击指向http://localhost/#/App/View3的链接。更新 URL 并加载 View3。
- 单击浏览器的后退按钮。Url 已更新为 View2,并且 View2 已在 UI 中加载。
如果我使用 AngularJS 的 $window 服务而不是 $location,一切正常。在升级到 Angular 6 之前,它与 Angular 4 一起工作。请帮助使用 $location 服务使其工作。
angularjs - 将 AngularJS 1.6 导入 Angular-Universal 项目
我们目前正在迁移一个混合的 Angular6 和 AngularJS 1.6 项目。在这个过程中,我们还想引入服务器端渲染(SSR)。
问题是,SSR 在节点环境中运行,因此运行 SSR/prerendering 会出现以下错误:
该项目基于universal-starter repo:https ://github.com/angular/universal-starter
有什么建议吗?
angularjs - Protractor e2e 测试在 AngularJS/Anuglar 6 Hybrid 应用程序中运行得非常快
我已将 Angular JS(1.5) 应用程序迁移到混合应用程序。我同时使用 Angular6/AngularJS (1.6)。我正在尝试为角度 js 页面运行现有 e2e 测试的量角器 e2e。
我所有现有的测试都运行得非常快。并且大多数 e2e 测试现在都因“元素不可见”或“元素未启用”等原因而失败,所以现在我在多个地方添加了等待元素以修复它们。他们跑得太快的任何原因?我有数百个测试用例,在测试用例中等待是一项耗时的任务。
我用来让它们通过的任何其他设置,因为这些设置在仅 Angular JS 的应用程序中运行良好。
在 Angular JS 应用程序中,我的量角器版本是“4.0.9”和“webdriver-manager”:“10.2.3”。现在在移动到一个角度混合应用程序之后,这里更新了版本
我的量角器版本:量角器“:”^5.3.2“webdriver-manager”:“12.0.6”,“selenium-webdriver”:“4.0.0-alpha.1”,
节点版本:`8.11.3 Protractor 版本:5.3.2 Angular 版本:6.0.4 AngularJS 版本:1.6.4 浏览器:Chrome、firefix
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 提供者:
angularjs - 从 Angular1 迁移到 Angular5(并行运行)
我当前的 AngularJS 应用程序由 django 提供服务。现在我们的团队可以将 Angular1 迁移到 Angular5。它应该并行运行。我们的应用程序非常庞大且遗留问题。我检查了 angular doc,它ngupgrade
可以帮助我们迁移东西。我在这里只是在寻找运行 Angular1 和 Angular5 的存储库或示例。
angularjs - Angular 和 Nativescript 项目的 JS 错误
当前行为当我尝试使用 tns run ios 运行应用程序时,它给了我以下错误。 附图显示了终端中的JS错误
预期行为 应用程序应该像 Web 应用程序一样在没有 JS 错误的情况下启动。
使用说明最小化重现问题
git clone "存储库名称" npm i cd nativescript npm i tns run ios 成功安装应用程序,但是应用程序没有打开。在手动打开应用程序时,它会给出一个 JS 错误。
改变行为的动机/用例是什么?
让网络和移动设备同时运行。
请告诉我们您的环境:
操作系统:MAC OS(也在 windows 上试过) 16GB RAM 包管理器:npm, tns
**Angular 种子版本:8aae926 节点:node --version = v8.11.3
angularjs - 需要帮助从 AngularJS 迁移到 Angular 6
我有一个旧的 AngularJS 应用程序,我想使用混合应用程序方法迁移到 Angular 6。
在我这样做之前,我想遵循升级教程: Phonecat升级教程
所以我克隆了 Phonecat AngularJS 应用程序并按照步骤操作。我被困在“升级电话服务”步骤。
问题在于“从'...'导入{...};” 在“phone-list.component.ts”文件中。当我删除导入并用“any”替换类型时,它可以工作。添加导入后,Chrome 中出现以下错误:
出口未定义
我昨天整晚都在搜索,找到了一些解决方案,但没有一个有效。也许是因为我发现的文档必须是 6 之前的 Angular 版本。
有人说最近的浏览器应该处理导入,其他人说我们不应该使用 SystemJS ......我有点迷茫。
谢谢你的帮助。如果您需要更多详细信息或文件,我很乐意更新我的问题。
这是 phone-list.component.ts
这是 phone-list.component.js
这是我的 tsconfig.json
这是我的 system.config.js
这是我的html文件
javascript - 单击另一个组件后无法解决组件中的参数错误
我收到此错误:
我们有一个 AngularJS 和 Angular 6 混合应用程序。到目前为止,我有三个 Angular 6 组件。每当我单击最新组件ManageProgramComponent
然后返回并单击其他两个组件中的任何一个时GroupAddComponent
,GroupEditComponent
我都会收到上述错误。但是,每当我单击任一组组件,然后单击ManageProgramComponent
,一切正常。
GroupComponents 使用相同的模块,即:
程序模块:
主应用模块:
组添加组件:
团体服务:
节目服务:
API服务:
有什么错误?