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

angularjs - angularjs/angular 6 混合应用程序中的 TS2430 错误

我的混合angularjs/angular6应用程序出现编译错误。

它发生在~\node_modules\@angular\upgrade\static\src\common\angular1.d.ts文件中。

属性“$inject”的类型不兼容。类型“ReadonlyArray”不可分配给类型“string[]”。“ReadonlyArray”类型中缺少属性“pop”。>~\node_modules\@angular\upgrade\static\src\common\angular1.d.ts 10 活动

angularjs 应用程序是在 VS2017 中创建的扩展应用程序。我不完全确定解决此问题可能需要哪些其他信息,但我会尽力提供。

编辑:这是所要求的 package.json:

{ "name": "amx", "version": "0.0.1", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { "@angular/animations": "6.1.9", "@angular/common": "6.1.9", "@angular/compiler": "6.1.9", "@angular/core": "6.1.9", "@angular/forms": "6.1.9", "@angular/http": "6.1.9", "@angular/platform-browser": "6.1.9", "@angular/platform-browser-dynamic": "6.1.9", "@angular/upgrade": "6.1.9", "@angular/router": "6.1.9", "core-js": "^2.5.4", "rxjs": "~6.3.3", "zone.js": "~0.8.26" }, "devDependencies": { "@angular-devkit/build-angular": "~0.9.0-rc.1", "@angular/cli": "~7.0.0-rc.1", "@angular/compiler-cli": "6.1.9", "@angular/language-service": "6.1.9", "@types/jasmine": "~2.8.8", "@types/jasminewd2": "~2.0.3", "@types/node": "~8.9.4", "codelyzer": "~4.3.0", "jasmine-core": "~2.99.1", "jasmine-spec-reporter": "~4.2.1", "karma": "~3.0.0", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~2.0.1", "karma-jasmine": "~1.1.2", "karma-jasmine-html-reporter": "^0.2.2", "protractor": "~5.4.0", "ts-node": "~7.0.0", "tslint": "~5.11.0", "typescript": "^2.9.2" } }

0 投票
0 回答
144 浏览

angularjs - Typeform data-url中的AngularJS括号表示法

我们有一个 AngularJS/Angular 混合应用程序。在这个应用程序中,我们尝试执行以下操作(使用应用程序的 AngularJS 部分):

但这不起作用,我收到以下错误:

如果我手动添加 URL,https://brand.typeform.com/to/123456它可以工作。

如何将括号表示法传递给该元素?

0 投票
1 回答
951 浏览

angular - Angular Upgrade - 不能使用升级的组件作为入口组件

我正在使用带有从 AngularJS 升级的组件的 Angular 升级模块。当我在模板中使用组件时,它们工作正常,但是当我尝试将它们用作入口组件时,我收到一个错误:

可能是因为升级的组件被定义为指令。我也尝试过包装到另一个组件中,但在这种情况下,它在尝试创建组件实例时给了我一个错误:

$scope由内部 UpgradeComponent 实现请求,如果在模板中使用组件,则可以很好地解决。

它是混合模式限制还是有什么方法可以将其用作入口组件?

需要入口组件,因为我需要从 JS 实例化该组件并手动附加到非角度 DOM 元素

0 投票
0 回答
145 浏览

angularjs - 在 Angular 组件中使用 KendoUI AngularJS 指令

我们有一个混合应用程序(AngularJS 1.6 和 Angular 5),它使用 Kendo UI for AngularJS。应用程序的 AngularJS 端的架构完全基于组件。我们正在慢慢地将每个 AngularJS 组件迁移到 Angular,并且有一个组件正在使用 Kendo UI Validator ( https://demos.telerik.com/kendo-ui/validator/angular )

我曾尝试使用角度/升级/静态方法,但并没有真正起作用

有谁知道是否有任何方法可以在 Angular 5 组件中使用 Kendo UI AngularJS 组件。出于多种原因(我们可以控制),我们还不能升级到 Kendo Angular UI -:(

0 投票
0 回答
241 浏览

google-chrome - 是否可以在用户同意的情况下创建自动 PWA 安装?

我有一个 web 应用程序,并为 Windows 构建了一个相应的 Electron 应用程序。我想在不处理商店的情况下对 IOS 和 Android 做同样的事情。该应用程序是完全网络的,但它只会在本地托管,包括前端和后端。因此,每个客户端都将在自己的 Intranet 中拥有自己的服务器。

问题是我不想在每个客户端浏览器中打开本地 IP 并手动执行“添加到主屏幕”。

理想的方法是使用一种自动化的方式在各种本地 IOS、Android 设备上创建和安装 PWA,就像在 Windows 中安装应用程序一样。

我的问题:是否可以自动创建 PWA 而无需通过手动“浏览器”方式?

0 投票
1 回答
536 浏览

rest - SFDC 移动 SDK API 调用 - 请求超时

混合移动应用程序 Cordova 8.0.0 Angular 1.7.5 Salesforce MobileSDK 6.2

方法 - force.apexrest 问题 - Salesforce REST API 调用 - 请求超时 (20%)。

详细信息 - 当移动应用程序访问 SFDC 自定义 REST API 时,有时它会收到请求超时(以防应用程序在一段时间内未从 SFDC API 获得响应)。

Mobile SDK 中是否有任何配置设置可以设置(增加)这个超时时间?

0 投票
1 回答
1034 浏览

javascript - 使用 Angular 7 在混合应用程序中加载 Angularjs 包

我有一个很大的应用程序,我应用了一些更改以使其成为混合。

如果旧的 Angularjs 应用程序包按时加载,它将正常工作。(这是一个 4-5MB 的捆绑包)我在网上查看了样本,其中大多数只是说同样的话。例如:

https://github.com/manfredsteyer/ngUpgrade-lite-sample/blob/master/src/index.html

这会起作用,因为它是一个小应用程序,他只是手动导入所有模块和组件,而在我的应用程序中有超过 200 个组件是不可能的。

那么在Angular混合应用程序中加载Angularjs应用程序包的最佳方法是什么?

我正在将旧应用程序与 Webpack 4 捆绑在一起,还尝试将其导入main.ts文件中,还尝试了scriptangular.json中,但没有运气,它给了我错误:

未捕获的错误:[$injector:nomod] 模块“应用程序”不可用!

我想这一定是因为在新的 angular 7 引导应用程序之前未加载 angularjs

0 投票
1 回答
213 浏览

angular-ui-router - uirouter/angular-hybrid AoT 构建 bootstrapModuleFactory 承诺注入器无法获取 UIRouter

我有一个示例 uirouter/angular-hybrid 应用程序,使用 @ngtools/webpack AngularCompiler 插件成功构建并运行。我已经更新了 main.aot.ts 引导函数以使用 bootstrapModuleFactory 并且可以从 promise 成功处理程序中可用的 platformRef 获取注入器。但是injector.get(UIRouter) 失败并显示“无法读取属性'config' of null”。

我确认 injector.get(NgZone) 会成功并且 injector.get(UIRouter) 会失败。我尝试将调用移动到 NgZone 运行函数内的 injector.get(UIRouter) 没有成功。

我还尝试将 upgrade.bootstrap 调用移动到上面的 promise success 函数中,以确保它首先启动,而没有解决问题。

一个简单的 angularjs 组件渲染良好,因此启动过程似乎成功了,只是无法调用 UIRouter.urlService 上的 listen() 和 sync() 函数。

我还确认了开发配置和非 aot 生产配置,对于同一个示例应用程序,没有这个问题,似乎工作正常。

使用版本:

uirouter/角度混合 v6.0.2

v7.1.4 的角度包,但在 6.0.0 中也失败了(这是 uirouter/angular-hybrid v6.0.2 文档中 package.json 中的角度版本)

感谢您的任何想法。

0 投票
0 回答
296 浏览

angularjs - 如何使用 downgradeModule 和 angular-cli 在 Angular 混合应用程序中打开 AOT?

我正在使用 downgradeModule 将 AngularJS 应用程序迁移到 Angular 7(此处描述:升级以提高性能)。在该文档的最后一部分中,当我想使用 AOT 时,我需要导入我的 AppModule 的 NgModuleFactory。我正在使用 angular-cli 来构建应用程序。是否可以引用在 angular-cli 构建中创建的 ModuleFactory 并因此为我的混合应用程序打开 AOT?

0 投票
0 回答
528 浏览

javascript - AngularJS 部分中的 Angular Hybrid 性能问题 - Mousemove 导致 100% CPU 负载

TLDR

  • 将鼠标移到 Angular 组件上 - 一切都很好!
  • 将鼠标移到 AngularJS 组件上 - 非常高的 CPU 负载,性能问题,为什么?

我们有一个 Angular 混合应用程序。使用的版本是:

  • 角度:7.1.3
  • AngularJS:1.7.5
  • zone.js:0.8.28

不幸的是,我们有大量的性能问题。我发现,当您移动鼠标时,CPU 负载会达到 100% 。

奇怪的是:已经升级到 Angular 的组件没有这种行为!当您移动鼠标时,大麦不会对 CPU 监视器产生影响。然而,在尚未升级的旧 AngularJS 组件中,如下图所示。

在 zone.js 中,我们使用了黑名单,如此处所述

polyfills.js,(通过index.html导入)

在此处输入图像描述

那么我们如何解决这个问题,AngularJS 部分没有这个巨大的性能问题呢?