如何解决更新到Angular 10后,如果没有'new',则不能调用类构造函数UpgradeComponent
我刚刚开始将Angular项目从9.1.0升级到10.0.12 它仍然是一个混合应用程序,并且已根据Angular docs
中的描述对几个组件进行了升级(从Angular JS升级)但是,在更新到Angular 10之后,那些升级的组件将无法加载并导致以下错误
没有“ new”(在新的MyUpgradedComponentDirective中),不能调用类构造函数UpgradeComponent。
我搜索了Changelog,但没有找到有关UpgradeComponent的任何信息。
解决方法
无休止的搜索无结果后,我进入了试错模式。
我发现jit
上有一个@Directive
属性,如果将其设置为true
,则上述错误就会消失。
添加jit: true
后,升级后的组件代码看起来像这样
@Directive({
selector: 'my-angular-selector',jit: true,})
export class MyDirective extends UpgradeComponent {
constructor(elementRef: ElementRef,injector: Injector) {
super('angularJsDirectiveSelector',elementRef,injector);
}
}
,
将jit
更改为true可能不是最好的解决方案-当在浏览器运行时中编译指令时,会将指令切换到模式,而不是用作预先编译的JS代码。
如果此处具有较早的版本,则似乎可以通过将tsconfig.json
output
属性设置为ES2015
来解决此处描述的问题。
更多详细信息请参见:https://github.com/angular/angular-cli/issues/18067
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。