问题标签 [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.

0 投票
0 回答
382 浏览

javascript - Angular 6路由器未使用angularjs $location服务检测Url更改

我有一个使用 Angular 6 和 AngularJS 1.6.4 的混合 Angular 应用程序。我已经在 Angular 模块中定义了所有路由,并使用 UpgradeComponent 升级了 AngularJS 组件,如升级指南中所述。

当我尝试使用 $location 服务从一个 AngularJS 视图导航到另一个 AngularJS 视图时,浏览器窗口中的 url 会发生更改,但 Angular 路由器没有检测到 url 更改,并且 UI 中仍然加载相同的视图。我试图订阅路由器事件和位置服务事件,没有一个被触发。

但是,当我单击其他链接时,它会导航到该链接。同样在移动到新链接后,当我单击浏览器的后退按钮时,它会将应用程序导航到之前不起作用的链接。例子:

  1. 当前网址是http://localhost/#/App/View1
  2. 单击指向http://localhost/#/App/View2的链接。Url 已更新,但 View1 仍加载到 UI 中。
  3. 单击指向http://localhost/#/App/View3的链接。更新 URL 并加载 View3。
  4. 单击浏览器的后退按钮。Url 已更新为 View2,并且 View2 已在 UI 中加载。

如果我使用 AngularJS 的 $window 服务而不是 $location,一切正常。在升级到 Angular 6 之前,它与 Angular 4 一起工作。请帮助使用 $location 服务使其工作。

0 投票
0 回答
418 浏览

angularjs - 将 AngularJS 1.6 导入 Angular-Universal 项目

我们目前正在迁移一个混合的 Angular6 和 AngularJS 1.6 项目。在这个过程中,我们还想引入服务器端渲染(SSR)。

问题是,SSR 在节点环境中运行,因此运行 SSR/prerendering 会出现以下错误:

该项目基于universal-starter repo:https ://github.com/angular/universal-starter

有什么建议吗?

0 投票
1 回答
632 浏览

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

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 投票
1 回答
72 浏览

angularjs - 从 Angular1 迁移到 Angular5(并行运行)

我当前的 AngularJS 应用程序由 django 提供服务。现在我们的团队可以将 Angular1 迁移到 Angular5。它应该并行运行。我们的应用程序非常庞大且遗留问题。我检查了 angular doc,它ngupgrade可以帮助我们迁移东西。我在这里只是在寻找运行 Angular1 和 Angular5 的存储库或示例。

0 投票
0 回答
37 浏览

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

0 投票
1 回答
489 浏览

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文件

0 投票
1 回答
225 浏览

javascript - 单击另一个组件后无法解决组件中的参数错误

我收到此错误:

我们有一个 AngularJS 和 Angular 6 混合应用程序。到目前为止,我有三个 Angular 6 组件。每当我单击最新组件ManageProgramComponent然后返回并单击其他两个组件中的任何一个时GroupAddComponentGroupEditComponent我都会收到上述错误。但是,每当我单击任一组组件,然后单击ManageProgramComponent,一切正常。

GroupComponents 使用相同的模块,即:

程序模块:

主应用模块:

组添加组件:

团体服务:

节目服务:

API服务:

有什么错误?

0 投票
1 回答
115 浏览

angularjs - AngularJS / Angular 6 混合应用程序重复控制台错误消息

见下图。我认为这是因为它是一个混合应用程序,它会两次推出错误,但我可能又错了。有没有人遇到过这个?

为什么错误会被打印两次?

重复的控制台错误