问题标签 [angular-ivy]

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 投票
2 回答
426 浏览

angular - Angular 8 到 9,无法将服务导入使用继承的类

将 Angular 从 v8 升级到 v9。该项目使用其“独特”的方式来定义事物(而不是组合),例如与服务一起扩展基类的类

例如:

迁移到 Angular 9 后,获得:

在此处输入图像描述

为其他类似的类获得相同类型的错误。

问题的根源似乎与尝试将服务注入使用继承的 clesses 有关。不幸的是,在这个级别 - 如果没有大的重构,就不可能把它扔掉。

有什么方法可以处理错误?

0 投票
10 回答
31696 浏览

angular - 此构造函数与 Angular 依赖注入不兼容,因为它在参数列表索引 0 处的依赖无效

在我的 Angular 9 应用程序中,我有一个抽象类:

和一个扩展它的组件:

一切正常,除了测试,我得到以下错误:

错误:此构造函数与 Angular 依赖注入不兼容,因为它在参数列表索引 0 处的依赖无效。如果依赖类型是像字符串这样的原始类型,或者如果此类的祖先缺少 Angular 装饰器,则可能会发生这种情况。

请检查 1) 索引 0 处的参数类型是否正确,以及 2) 为此类及其祖先定义了正确的 Angular 装饰器。

0 投票
2 回答
14895 浏览

angular - 从 Angular 8 更新到 9 时位置 0 的值

在遵循 update.angular.io 上的更新指南(+ 运行 npm 更新)并尝试使用ng serve我得到以下错误编译网站后,我正在将我的项目从 Angular 8 更新到 9:

任何帮助表示赞赏。

更新

我的ng version输出:

我的 package.json:

我的 tsconfig.ts:

更新 2 卸载angular-font-awesome软件包后,我只收到一个 Angular 插件错误:

0 投票
1 回答
47 浏览

angular - Chunk 不包含延迟加载的组件

我刚刚将 Angular 9 应用程序拆分为 2 个模块以优化加载时间。不幸的是,编译产生的块非常小,似乎只包含我的功能模块和路由器的代码。该模块中包含的所有组件仍在主 js 文件中。

这就是我所做的:

应用模块

共享模块:

功能(ConfigModule)模块

特性模块在 App 的路由中被延迟加载:

最后,功能模块定义了自己的路线,如下所示:

我错过了什么?

我期待该块包含功能模块中包含的所有内容,而不仅仅是一小部分代码。

编译结果为:

  • 5-es2015.js:4KB
  • 主es2015.js:3.1MB
  • polyfills-es2015:62KB
  • 运行时-es2015:3KB

我会理解 main 由于所有依赖项应该更大,但它不应该包含功能模块的组件。

谢谢你的帮助

0 投票
0 回答
89 浏览

angular - 角常春藤和花括号

我最近使用 Ivy 编译器将我的应用程序更新为 angular 9,我遇到了这个错误:

错误:解析模板时出错:意外字符“EOF”(您的模板中有未转义的“{”吗?使用“{{'{'}}”)转义它。)(“]=”{'selected': isSelected(option)}", *ngFor="let option of options; index as i;" ) {{option}}

对于这个模板(这里是哈巴狗版本)

试图告诉我的是,我需要{{{ '{' }}似乎很奇怪且难以理解的内容替换每个单曲:

那么有什么意义呢?我可以做些什么来解决这个问题,或者我真的需要重写我的代码?

0 投票
1 回答
1815 浏览

angular - HMR 使用 Angular 9 + IVY 失败:类型 AppComponent 是 2 个模块声明的一部分:AppModule 和 AppModule

受影响的包裹

HMR + 常春藤

这是回归吗?

常春藤之前,它有效

描述

似乎IVY和HMR一起玩得不好?但是我看到他们的门票是关闭的,所以我想应该是可能的。我在代码更改后重新加载:

未处理的 Promise 拒绝:类型 AppComponent 是 2 个模块声明的一部分:AppModule 和 AppModule!请考虑将 AppComponent 移至导入 AppModule 和 AppModule 的更高模块。您还可以创建一个新的 NgModule,它导出并包含 AppComponent,然后在 AppModule 和 AppModule 中导入该 NgModule。背景类型是 2 个模块声明的一部分:AppModule 和 AppModule!请考虑将 Background 移至导入 AppModule 和 AppModule 的更高模块。您还可以创建一个新的 NgModule,它导出并包含 Background,然后在 AppModule 和 AppModule 中导入该 NgModule。

...

我们可以看到其他人如何更好地调查: https ://www.gitmemory.com/issue/storybookjs/storybook/8494/551763214

当前环境

角度版本:

ng 9.0.1

cli 9.0.1

0 投票
5 回答
20103 浏览

angular - 错误 NG6002:出现在 NgModule.imports 的,但无法解析为 NgModule 类

我刚刚从 Angular 8.2 更新到 9。

如果我禁用常春藤,一切都会很好,但是当它启用时,我会遇到很多似乎有点模糊的错误,至少我在谷歌搜索时找不到任何结果。

我很确定我已经完成了更新所需的一切,即将延迟加载更改为使用动态导入和固定 Angular Material 导入路径等。

我还将在此处包含我的package.json依赖项

我得到的错误本身是:

在此处输入图像描述

我已经清除了我的node_modulespackage-lock.json并再次运行npm install

编辑:也许同样重要的是要注意它正在编译和运行,ng serve但是当我尝试构建它或使用 AOT 运行时,ng serve -aot我得到了错误。

0 投票
2 回答
1816 浏览

angular - 如何使用 Angular 9 (Ivy) 动态渲染和加载组件

我曾经使用 ComponentFactoryResolver 使用服务按名称加载和呈现我的组件。

这是代码的一部分,用于渲染组件

我使用函数getTypeOfComponent中的两行获得了组件的类型:

我在 Angular 9 中使用 Ivy 阅读过,您必须导入组件以进行“延迟加载”并渲染组件。

使用例如

但是我无法做到这一点,我总是遇到同样的错误

core.js:5845 错误错误:未捕获(承诺):错误:找不到模块“details-products/details-products.component”错误:找不到模块“details-products/details-products.component”

我已经尝试了很多组件路径,但仍然遇到相同的错误。

有任何想法吗?在 Angular 9 中使用 Ivy 渲染组件的任何其他方式?

编辑:

我已经尝试过博客所说的导入。例如:

这对我有用,但如果我做下一个:

然后这将不起作用并抛出找不到模块的错误。

有任何想法吗?

0 投票
1 回答
2150 浏览

project - 如何使用 IVY 创建 Angular 9 项目?

如何使用 IVY 创建 Angular 9 项目?

我尝试了以下方法:

我的环境:

角 CLI:9.0.2

节点:12.16.0

操作系统:win32 x64

角度:...常春藤工作区:

包装和版本

@angular-devkit/架构师 0.900.2

@angular-devkit/核心 9.0.2

@angular-devkit/原理图 9.0.2

@原理图/角度 9.0.2

@原理图/更新 0.900.2

rxjs 6.5.3

C:\src\Angular\pilot\A9>ng new sample9prjivy --enable-ivy

未知选项:'--enable-ivy'

我错过了什么?

0 投票
1 回答
1823 浏览

angular - 无法读取未定义的属性“禁用”:this.ngControl.control 在 Ivy 中未定义

如此问题所述,如果您尝试使用指令访问 ngControl.control:

第一次渲染时会报错: